希望有人可以就以下内容提出建议。
目前我有以下代码,我想将 $3 和 $5 分配给 {} 括号内的 shell 变量 - 这可能吗:
while read line; do pntadm -P $line | awk '{if (( $2 == 00 && $1 != 00 ) || ( $2 == 04 )) print $3,$5}'; done < /tmp/subnet_list
为了让事情更清楚一点:
root[my-box]# cat /tmp/final_list
111.222.333.0
root[my-box]# pntadm -P 111.222.333.0 | head
Client ID Flags Client IP Server IP Lease Expiration Macro Comment
00A0BCDE1FGHI1 00 111.222.333.001 111.222.333.253 04/06/2013 macro1
00 04 111.222.333.002 111.222.333.253 Zero macro1
00 00 111.222.333.003 111.222.333.253 Zero macro1
00A0BCDE1FGHI2 00 111.222.333.004 111.222.333.253 05/06/2013 macro1
root[my-box]#
我收到的代码应该从上面挑出三行(IP 的 111.222.333.001 ...002 和 ...004)。
如果我只需要例如 $5 的结果,我可以执行以下操作:
while read line; do date=$( pntadm -P $line | awk '{if (( $2 == 00 && $1 != 00 ) || ( $2 == 04 )) print $5}' ); done < /tmp/subnet_list
但我需要 3 美元和 5 美元一起...
如果不使用数组,谁能告诉我如何在 {} 括号内将 $3 和 $5 分配给 shell 变量 - 请?
Rgds
中东欧