【问题标题】:Shell, grep for list of patternsShell, grep 模式列表
【发布时间】:2015-04-21 19:39:32
【问题描述】:

我有两个 csv 文件 a.csv 和 b.csv。我从 a.csv 文件中“剪切”一列,现在我想在第二个文件 b.csv 中为该列中的每个字符串进行 grep。 有人可以帮我写一个shell脚本吗?

【问题讨论】:

  • 将它们粘贴到一个文件中并使用grep -fF,也可能使用-w
  • 有没有办法不把它们放到临时文件中?
  • 您可以改用进程替换:grep -fF <(cut ... a.csv) b.csv,但这实际上只是一个文件,这意味着如果您出于某种原因需要再次运行 grep,则需要再次运行 cut
  • 这就是我要找的东西。但是当我尝试“grep -fF
  • 糟糕,-Ff。抱歉,订单很重要。

标签: shell grep


【解决方案1】:

对于此类任务,您希望 -f(可能还有 -F 和可能的 -w)标志到 grep

$ cut ... a.csv > tmp
$ grep -Ff tmp b.csv

您可以在支持进程替换的 shell 上不使用临时文件来执行此操作。

$ grep -Ff <(cut ... a.csv) b.csv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 2015-10-07
    • 2012-10-01
    相关资源
    最近更新 更多