我正在使用遵循基本流程的大型 CSV。
- 备份工作原件
- 生成骨架 CSV
- 从另一个 CSV 读取,格式化内容,然后将其附加到骨架
- 将备份中的数据附加到新的。
我遇到的问题是,当我从备份中读取内容时,我正在使用grep -Ev -f
一个包含正则表达式的文件来从备份中排除不需要的数据,以包含在下一个版本中。这目前存在一个问题,因为 grep 似乎针对来自 STDIN 的每一行评估文件中的每个正则表达式,这将导致重复。简单的解决方案是简单地将其通过管道sort | uniq
并称之为一天,但这将与当前使用的 csv 的格式产生冲突。如果需要,我可以详细说明,但不足之处是我运行一个脚本来批量处理 IP 地址,但也有其他人手动编辑文件,并且使用当前形式的脚本,最终输出将是所有自动化内容手动条目位于文件的底部。
那么,无论如何,是否没有一些丑陋的 grep 循环来告诉它在模式匹配后停止评估一行?使用-m 1
将在整个流中的第一个匹配之后停止 grep,我需要它在每个新行之后停止。