从可变列大小的文本文件中提取出符合多个条件的行
问题描述:
从下面的文本文件中,如果行符合条件A = Jack和C = Bill,我想打印第1列和第2列的值。从可变列大小的文本文件中提取出符合多个条件的行
1 123 A=Jack C=Bill D=Dad
1 423 A=Sue B=Dad C=Kirk D=Pat
1 483 A=Jack B=Kirk C=Bill D=Bob
2 592 A=Sue B=Bob C=Bill
4 312 A=Jack B=Kirk C=Dad D=Sue
所以,预期的结果是:
1 123
1 483
如何做到这一点无论是用AWK或者grep的?
预先感谢您!
答
使用GNU AWK的字边界:
awk '/A=Jack\>/&&/C=Bill\>/ { print $1, $2 }' file
\>
创建一个字的边界,以便它不匹配Jackson
或Billy
为Ed的意见建议。
+1
'\ y'也是gawk特有的,请参阅http://www.gnu.org/software/gawk/manual/gawk.html#GNU-Regexp-Operators。别客气。 – 2015-02-11 17:28:52
请在解决问题的尝试自己发布之前。 – 2015-02-11 15:51:24
这简直太可笑了。快速查看任一手册页将提供足够的信息来完成此操作。 – 2015-02-11 15:53:52