use*_*552 0 unix linux bash shell sed
如何替换文件中以文字开头aaa的行我不知道该行的位置.
files.txt:
sadasd_dsada = (aa,bb,cc)
aaa = (aa,bb,cc)
sadasd_dsada = (aa,bb,cc)
Run Code Online (Sandbox Code Playgroud)
更换:
aaa = (aa,bb,cc)
Run Code Online (Sandbox Code Playgroud)
对于:
aaa = (dd,ee,ff)
Run Code Online (Sandbox Code Playgroud)
最简单的方法是用以下代码进行替换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)
Run Code Online (Sandbox Code Playgroud)
字符^并$分别在regexp中匹配行的开头和结尾,这意味着只有整行匹配才会进行替换.
一旦您对更改感到满意,请使用-i选项保存回文件.
$ sed -i 's/^aaa = (aa,bb,cc)$/aaa = (dd,ee,ff)/' file
Run Code Online (Sandbox Code Playgroud)
编辑:
$ 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)
Run Code Online (Sandbox Code Playgroud)