首页 > 解决方案 > 如何从特定列中的匹配模式中删除直到文件结束

问题描述

一旦找到模式,我想删除文件中的记录并删除该模式中的所有行,直到文件结束

我尝试在 awk 中做,但我还没有发现是否有更简单的方法来做到这一点

所以我想匹配第二列中的模式,然后从该模式中删除记录,直到文件结束

awk -F"," '$2 ~ /100000/ {next} {print}'  file.csv 

所以上面的代码跳过了这些行但是你可以看到我需要添加多个匹配模式来忽略第二列中值为 100000 的行之后的行。请注意,第 2 列中的值按顺序出现,因此在 100000 之后将出现 100001,并且没有固定的结束编号。

标签: awksed

解决方案


不确定我是否正确解决了您的问题恕我直言,我相信您需要关注。

awk '$2==100000{print;exit} 1' Input_file

这将打印到第 2 列为 100000 的行,然后由于您不想打印任何操作,尽管只是读取更多文件并跳过它,这将从代码中退出,这也将节省我们的时间。

或者根据 Ed Morton 先生的好建议:

awk '1; $2==100000{exit}' Input_file

推荐阅读