我想基于下一个列值获取列值。我正在为具有值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
答案 0 :(得分:2)
您为什么不为此使用awk?例如:
awk '{for(i=2;i<=NF;++i){if($i=="host"){print $(i-1);break}}}' file