从文件 [duplicate] 中读取和删除

Read and delete from file [duplicate]

提问人:Ultron 提问时间:11/18/2023 最后编辑:RonUltron 更新时间:11/18/2023 访问量:37

问:

我有一个文件:

"testtesttestestetest /n
fromhere /n
12345698712359 /n
58981338913556 /n
125879561546621 /n
testtesttesttestestetest /n
testtesttestestetest /n
heretesttesttestestetest /n
omheretesttesttestestetest /n
fromhere /n
58981338913556 /n
125879561546621/n
12345698712359 /n
test1236547"

我想读取一个文件,当一行与“fromhere”匹配时,我想删除该行和以下 3 行。

也许有人有一个快速的解决方案?

谢谢!

文件需要如下所示:

"testtesttestestetest
testtesttesttestestetest
testtesttestestetest
heretesttesttestestetest
omheretesttesttestestetest
test1236547"

评论

0赞 dawg 11/18/2023
sed '/^fromhere/,+3d' your_file
0赞 David Makogon 11/18/2023
请看:为什么“有人可以帮助我吗?”不是一个实际的问题?另外,请阅读如何创建一个最小的可重现示例。您提供的只是一组要求。

答:

1赞 Ron 11/18/2023 #1

这是一个快速解决方案:sed

sed '/^fromhere/,+3d' /input/file

如果需要修改文件,请添加到 SED 以进行内联编辑,结果如您所料:-i

sed -i '/^fromhere/,+3d' /input/file