テキストで始まるファイル内の行を置き換える方法 行のaaa
場所がわかりません。
ファイル.txt:
sadasd_dsada = (aa,bb,cc)
aaa = (aa,bb,cc)
sadasd_dsada = (aa,bb,cc)
交換:
aaa = (aa,bb,cc)
為に:
aaa = (dd,ee,ff)
最も簡単な方法は、次のように置換することsed
です。
$ sed 's/^aaa = (aa,bb,cc)$/aaa = (dd,ee,ff)/' file
sadasd_dsada = (aa,bb,cc)
aaa = (dd,ee,ff)
sadasd_dsada = (aa,bb,cc)
文字^
と$
は、正規表現でそれぞれ行頭と行末に一致します。これは、行全体の一致に対してのみ置換が行われることを意味します。
変更に満足したら、-i
オプションを使用してファイルに保存します。
$ sed -i 's/^aaa = (aa,bb,cc)$/aaa = (dd,ee,ff)/' file
編集:
$ cat file
sadasd_dsada = (aa,bb,cc)
aaa = (aa,bb,cc)
aaa = foo
sadasd_dsada = (aa,bb,cc)
aaa = bar
$ sed 's/^aaa = .*/aaa = (dd,ee,ff)/' file
sadasd_dsada = (aa,bb,cc)
aaa = (dd,ee,ff)
aaa = (dd,ee,ff)
sadasd_dsada = (aa,bb,cc)
aaa = (dd,ee,ff)