awk - 如何从特定列中的匹配模式中删除直到文件结束
问题描述
一旦找到模式,我想删除文件中的记录并删除该模式中的所有行,直到文件结束
我尝试在 awk 中做,但我还没有发现是否有更简单的方法来做到这一点
所以我想匹配第二列中的模式,然后从该模式中删除记录,直到文件结束
awk -F"," '$2 ~ /100000/ {next} {print}' file.csv
所以上面的代码跳过了这些行但是你可以看到我需要添加多个匹配模式来忽略第二列中值为 100000 的行之后的行。请注意,第 2 列中的值按顺序出现,因此在 100000 之后将出现 100001,并且没有固定的结束编号。
解决方案
不确定我是否正确解决了您的问题恕我直言,我相信您需要关注。
awk '$2==100000{print;exit} 1' Input_file
这将打印到第 2 列为 100000 的行,然后由于您不想打印任何操作,尽管只是读取更多文件并跳过它,这将从代码中退出,这也将节省我们的时间。
或者根据 Ed Morton 先生的好建议:
awk '1; $2==100000{exit}' Input_file
推荐阅读
- android - 将 minSdkVersion 从 16 更新到 19 后,找不到 com.android.library 错误?
- typescript - 覆盖 Express.js 和 Passport 用户类型 (TypeScript)
- c++ - 如何获得方程C++的总和
- flutter - 如何将 Future 函数中的数据传递给有状态类?
- java - 根据 SOLID 主体注册侦听器
- javascript - 在这种情况下使用 .map 是否正确?
- python - 从 json 读取 str、bool 的元组列表到一个类中
- ubuntu - 在 Ubuntu20.04 中构建 Gem5
- relation - 在关系中查找给定值的图像
- ios - 找不到“Flutter/Flutter.h”文件