Grep-f只回第一场比赛

  • 本文关键字:一场 Grep-f bash csv grep
  • 更新时间 :
  • 英文 :


我正在处理一个遵循基本流程的大型CSV。

  1. 备份工作原件
  2. 生成骨架CSV
  3. 从另一个CSV读取,格式化内容,然后将其附加到骨架
  4. 将备份中的数据附加到新数据中

我遇到的问题是,当我从备份中读取内容时,我将grep -Ev -f与包含正则表达式的文件一起使用,以从备份中排除不需要的数据,从而将其包含在下一个修订版中。这目前带来了一个问题,因为grep似乎会根据STDIN中的每一行来评估文件中的每个regex,这将导致重复。简单的解决方案是简单地通过sort | uniq进行管道传输,然后结束一天,但这会影响当前使用的csv的格式。如果需要,我可以详细说明,但简而言之,我运行了一个脚本来批量处理IP地址,但也有其他人手动编辑文件,根据脚本的当前形式,最终输出将是所有自动内容,手动条目位于文件底部。

那么,是否有一些grep的丑陋循环来告诉它在匹配模式后停止评估行呢?使用-m 1将在整个流中的第一个匹配之后停止grep,我需要它在每个新行之后停止。

用于您想要完成的任务。在我看来,最好使用AWK。您可以在以下位置找到AWK的优秀教程:http://www.grymoire.com/Unix/Awk.html.您基本上需要使用更改awk的输入字段分隔符

awk -f',' foo.awk bar.dat

就排序问题而言,如下所示:http://www.linuxquestions.org/questions/linux-general-1/how-to-use-awk-to-sort-243177/

相关内容

  • 没有找到相关文章

最新更新