如何在Linux中基于相邻列值获取列值?

时间:2019-05-15 12:49:13

标签: linux shell awk grep

我想基于下一个列值获取列值。我正在为具有值host的列进行grepping,并希望打印前一个列值

尝试使用grep -Po ".* (?=host)",但没有获得正确的输出

文件test.log包含以下示例数据(均在一行中)

test Plus 193310 68FAD575EC59C2C6 exa4dbadm03  host                     


cat test.log|grep -i 193310|grep -i host|grep -Po ".* (?=host)"

我正在尝试grep具有作为主机值的列并打印前一列的值。在这种情况下,我想获得exa4dbadm03作为输出

预期结果: exa4dbadm03

1 个答案:

答案 0 :(得分:2)

您为什么不为此使用?例如:

awk '{for(i=2;i<=NF;++i){if($i=="host"){print $(i-1);break}}}' file
相关问题