0

Pythonで次のようにして不要な空白を削除することはできますが、ターミナルを介して、などの他の方法で実行できsedますgrepか?

outfile = open('textstripped.txt','w+','utf8')
for i in open('textfile.txt','r','utf8'):
  print>>outfile, i.strip()
4

4 に答える 4

2

perlコマンドラインで使用:

perl -lpe 's/^\s+//; s/\s+$//' file.txt > stripped.txt

于 2013-03-11T04:08:12.360 に答える
2

このソリューションは、sed man ページに基づいています。

sed 'y/\t/ /;s/^ *//;s/ *$//' input > output

http://www.gnu.org/software/sed/manual/sed.html#Centering-lines

説明:

y\t/ /タブをスペースに置き換えます

s/^ *//先頭のスペースを削除します

s/ *$//末尾のスペースを削除します

于 2013-03-11T04:20:19.467 に答える
1
$ cat input.txt | sed 's/^[ \t]*//;s/[ \t]*$//' > output.txt

これにより、先頭と末尾の空白が取り除かれます..

編集:sed -e "s/^[ \t]+//; s/[ \t]+$//" -i .bk input.txt

これにより、その場でファイル編集が行われ、バックアップがinput.txt.bkに保存されます(そして、いくつかの提案に従ってプロセスが保存されます)

于 2013-03-11T03:58:13.533 に答える
1

sed -E "s/(^[ \t]+|[ \t]+$)//" < input > output

または、SED の GNU 準拠バージョンを使用している場合:

sed -E "s/^\s+|\s+$//g" < in > out

Mac をお持ちの場合は、 を入手homebrewしてインストールすることをお勧めしgnu-sedます。次に、alias sed=gsed.

于 2013-03-11T04:02:39.783 に答える