从下面的示例文本文件中,如果行符合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完成此操作?
提前谢谢!!
答案 0 :(得分:2)
使用GNU awk进行单词边界:
awk '/A=Jack\>/&&/C=Bill\>/ { print $1, $2 }' file
\>
会创建一个字边界,使其与评论中建议的Jackson
或Billy
不匹配。
答案 1 :(得分:0)
awk '/A=Jack.* C=Bill.*/{print $1,$2}' file
编辑:上面提到的是使用正则表达式匹配任何具有模式A = Jack和C = Bill的行,一旦为真,则打印第1列和第2列