Как сделать str.strip() для каждой строки в текстовом файле? Юникс
Я мог бы сделать следующее на python, чтобы очистить и удалить нежелательные пробелы, но можно ли это сделать через терминал другими способами, такими как sed
, grep
или что-то еще?
outfile = open('textstripped.txt','w+','utf8')
for i in open('textfile.txt','r','utf8'):
print>>outfile, i.strip()
$ cat input.txt | sed 's/^[ \t]*//;s/[ \t]*$//' > output.txt
Это избавляет от ведущих и завершающих пробелов.
EDIT: sed -e "s/^[ \t]+//; s/[ \t]+$//" -i.bk input.txt
Это делает редактирование файлов и сохраняет резервную копию на input.txt.bk (и сохраняет процесс, как это было предложено)
Это решение основано на странице sed man:
sed 'y/\t/ /;s/^ *//;s/ *$//' input > output
http://www.gnu.org/software/sed/manual/sed.html#Centering-lines
Описание:
y\t//
заменяет вкладки пробелами
s/^ *//
удаляет ведущие пространства
s/*$//
удаляет конечные пробелы
Использование perl
в командной строке:
perl -lpe 's/^\s+//; s/\s+$//' file.txt > stripped.txt
sed -E "s/(^[ \t]+|[ \t]+$)//" < input > output
Или если у вас есть версия SED, совместимая с GNU:
sed -E "s/^\s+|\s+$//g" < in > out
Если у вас есть Mac, я рекомендовал получить homebrew
и установить gnu-sed
. Затем, alias sed=gsed
.