如何替換以文本開頭的文件中的行aaa
我不知道該行在哪裏。替換文件中的行
files.txt:
sadasd_dsada = (aa,bb,cc)
aaa = (aa,bb,cc)
sadasd_dsada = (aa,bb,cc)
替換:
aaa = (aa,bb,cc)
爲:
aaa = (dd,ee,ff)
如何替換以文本開頭的文件中的行aaa
我不知道該行在哪裏。替換文件中的行
files.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)
字符^
和$
分別與regexp中行的開始和結束相匹配,這意味着替換隻會發生在整行匹配中。
一旦您對更改感到滿意,可使用-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)
謝謝,但我不知道背後是什麼符號「=」:-( – user2093552 2013-03-01 16:02:13
這沒問題,請參閱編輯。 – 2013-03-01 16:04:21
我可能會使用'sed'但它取決於你想怎麼改就行了。你是否需要從舊線的價值來形成新的線? – hwatkins 2013-03-01 15:42:23