带字段的Grep命令

时间:2016-12-21 16:33:26

标签: bash grep

我是一个格式化的文本,我需要找到两个字符A的序列,由两个字符分隔。关键是我只需要在格式化文本的第二列中查找它们。我需要使用grep命令。我想出了这个:

grep -E A\.\.\A data.txt

适用于所有列,但我只需要搜索第二列。有什么建议? 谢谢

1 个答案:

答案 0 :(得分:1)

使用grep并假设,是您的字段分隔符,您可以使用以下内容:

grep -E "^[^,]*,[^,]*A[^,]{2}A" data.txt

我们

  • 跳过第一列:
    • ^
    • 的开头
    • 第一个逗号[^,]*
    • 的所有内容
    • 第一个逗号,
  • 现在我们落后于第一个逗号,例如在第二列中,我们匹配
    • [^,]*
    • 之前的可选字符A
    • 两个不是逗号的字符:[^,]{2}
    • 后跟第二个A

但正如其他人已经说过的那样:awk可能是完成这项任务的更好工具。