17

プログラム「sed」を使用して、ファイルの最初の行でのみ文字列を置き換えるにはどうすればよいですか?

コマンドs/test/blah/11s/test/blah/が機能していないようです。別の方法はありますか?

4

3 に答える 3

34

これはうまくいくかもしれません(GNU sed):

sed -i '1!b;s/test/blah/' file

最初の行のみを最初testに置き換えます。blah

または、最初の行だけを変更したい場合:

sed -i '1c\replacement' file 
于 2012-09-21T12:24:43.093 に答える
3

これはそれを行います:

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

于 2012-09-21T07:43:53.223 に答える