Sed - 从文件中删除第一次出现的字符串

Jar*_*787 0 perl sed

我有一个名为test.txt的文件,其中包含以下内容:

test1
test2
test3
test4
test5
test3
Run Code Online (Sandbox Code Playgroud)

我使用以下代码"test3"从文件中删除:

sed -i '/test3/d' test.txt
Run Code Online (Sandbox Code Playgroud)

但是我只想删除第一次出现的 "test3"

Ken*_*ent 5

这个sed单行将帮助您:

sed '0,/test3/{/test3/d}' file
test1
test2
test4
test5
test3
Run Code Online (Sandbox Code Playgroud)

这个sed命令使用了sed的地址.Sed有不同的地址表达式,这在sed的Info页面中有详细解释.

对于此命令,0, /pattern/将从第一行聚焦到第一行匹配/pattern/,然后执行操作:/pattern/d,即删除第一个匹配行.完成此操作后,所有后续行都不会满足地址0,/pattern/,因此采取默认操作:按原样打印.

  • 为什么不为您提供的代码添加解释,以便有人可以从中学习. (4认同)