プログラム「sed」を使用して、ファイルの最初の行でのみ文字列を置き換えるにはどうすればよいですか?
コマンドs/test/blah/1
と1s/test/blah/
が機能していないようです。別の方法はありますか?
これはうまくいくかもしれません(GNU sed):
sed -i '1!b;s/test/blah/' file
最初の行のみを最初test
に置き換えます。blah
または、最初の行だけを変更したい場合:
sed -i '1c\replacement' file
これはそれを行います:
sed -i '1s/^.*$/Newline/' textfile.txt
一致が1行目のみに固有であることを確認するだけで失敗します:
sed -i 's/this is line one and its unique/Changed line one to this string/' filename.txt
この-i
オプションは、出力を stdout に表示するだけでなく、ファイルに変更を書き込みます。
編集:
共通文字列に一致する行全体を置き換えるには、次のようにします。
sed -i 's/^.*COMMONSTRING$/Newline/'
whereは行頭に一致^
し、行末に$
一致し、それまでの.*
すべてに一致しますCOMMONSTRING