我有一个包含以下几行的文件:
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
Run Code Online (Sandbox Code Playgroud)
如何删除“SUKsoft:”行?
这一行可以在文件的任何位置(从现在开始,或者在中间)。
是否有执行此操作的命令?
要删除行使用
sed -i '/SUKsoft:\s*$/d' your_file
Run Code Online (Sandbox Code Playgroud)
例子
% cat foo
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% sed -i '/SUKsoft:\s*$/d' foo
% cat foo
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
Run Code Online (Sandbox Code Playgroud)
grep搜索满足模式的线。 grep -v 丢弃满足模式的行。
grep -v '^SUKsoft: *$'
Run Code Online (Sandbox Code Playgroud)
该模式是:以 ( ^)开头的行SUKsoft:,可能后跟空格,但直到行结束 ( $) 为止没有其他内容。