我有以下带有文本的txt文件(文件Test.txt的名称)
THE Lord is djncjdnjfn one almighty
THE Lord is dcdcdc great
THE Lord is dcdcdc one
THE Lord is cdcdcdc most powerful
THE Lord has cdcdcdc many faces
THE Lord is cdcdc above all
我想删除所有以 THE Lord 开头但不以一行结尾的行,所以输出将是
THE Lord is dcdcdc one
我正在使用终端,我正在使用以下命令
sed -i "" '/^THE Lord*one$/!d' Test.txt
这对我不起作用此外,如果我想删除所有以 THE Lord 开头的行,我有一些观察
sed -i "" '/^THE Lord/d' Test.sh
不管用
相反sed -i "" '/THE Lord/d
正在工作
类似地,如果我想删除以 1 结尾的行
sed -i "" '/one$/d' Test.sh
不管用
相反sed -i "" '/one/d'
正在工作
我无法使用$ ^
锚点
sed
是一种脚本语言。通过分支支持简单的 if/then 逻辑。该b
命令跳到脚本的末尾并导致sed
放弃对当前行的进一步处理。
sed -e '/^THE Lord/!b' -e '/one$/!d' file
该!
否定运算符说,如果以前的状态是假的运行命令。
添加-i ""
将更改写回文件的选项,而不是在标准输出上显示结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句