回答:
あなたはそれをするsed
ために使うことができます:
sed -i.bak 's/^/##/' file
これにより、行の先頭(^
)がに置き換えられ##
ます。
では-i.bak
スイッチ、sed
インプレースのファイルを編集しますが、拡張子を持つバックアップコピーを作成します.bak
。
sed 's/^\(.*\)$/##\1/'
いましたが、これはずっといいです。
perlを使用してこの問題を解決します
perl -e 'while (<>) {print "##$_"}' < infile > outfile
-p
スイッチも便利ですperl -pe 's/^/##/' infile > outfile
。(-i[extension]
ターゲットファイルをインプレースで置き換えるスイッチもあります。)perldoc.perl.org/perlrun.html#%2a-p%2a
pythonのマッピング関数とstdinのリダイレクトで行うことができます:
$ cat input.txt
lorem ipsum
quick brown fox
hello world
$ python -c 'import sys;print "".join(map(lambda x: "##"+x,sys.stdin.readlines()))' < input.txt
##lorem ipsum
##quick brown fox
##hello world
出力を新しいファイルに保存し、元のファイルの代わりに使用します
sed 's/^/##/' -i file
。この場合、間違った方向に進むことができないため、これが優先されます。他の場合では、このコマンドを組み合わせてdiff -u file.bak file
違いを確認することができます(必要に応じてをパイプ処理しますless
)。動作することが確認されたら、バックアップを削除できます。それ以外の場合は、単純なで復元できますmv file.bak file
。