如何删除字符串前一行和后两行?
假设您的文本文件中有如下所示的记录:
header data1 data2 data3
如果 data1 是给定字符串,我想删除整个记录。我认为这需要 awk,我不知道。
Say you have records in a text file which look like this:
header data1 data2 data3
I would like to delete the whole record if data1 is a given string. I presume this needs awk which I do not know.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
awk 可以通过将记录分隔符设置为空字符串来处理这些多行记录:
您可以将其保存在文件中(例如
remove.awk
)并使用awk -f remove.awk data 执行它.txt> newdata.txt
假设您的数据格式如下:
如果记录之间没有空行,则需要手动拆分记录(每条记录 4 行):
Awk can handle these multiline records by setting the record separator to the empty string:
You can save this in a file (eg
remove.awk
) and execute it withawk -f remove.awk data.txt > newdata.txt
This assumes your data is of the format:
If there are no blank lines between the records, you need to manually split the records (this is with 4 lines per record):
不知道您想要什么输出并且样本输入不足。
without knowing what output you desired and insufficient sample input.