0

テキストで始まるファイル内の行を置き換える方法 行のaaa場所がわかりません。

ファイル.txt:

sadasd_dsada = (aa,bb,cc)
aaa = (aa,bb,cc)
sadasd_dsada = (aa,bb,cc)

交換:

aaa = (aa,bb,cc)

為に:

aaa = (dd,ee,ff)
4

1 に答える 1

8

最も簡単な方法は、次のように置換すること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)
于 2013-03-01T15:39:57.747 に答える