我有以下输出

$ cat /proc/net/route
Iface   Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT
br-lan  03043836        C0A80101        0007    0       0       5       FFFFFFFF        0       0       0
br-lan  C0A80100        00000000        0001    0       0       0       FFFFFF00        0       0       0


我使用awk提取包含Destination 03043836和Mask FFFFFFFF的行,然后再次使用awk从提取的行中显示第一个元素:

$ dest=03043836; mask=FFFFFFFF; va=1;
$ cat /proc/net/route | awk '$2=="'"$dest"'" && $8=="'"$mask"'"' | awk '{print $'"$va"'}'
br-lan


现在,我只想在一个awk命令中收集两个awk命令。怎么做?

最佳答案

您可以将它们全部三个结合在一起(在此处包括cat which is needless):


  dest = 03043836; mask = FFFFFFFF; va = 1;
  
  awk -v dest =“ $ {dest}” -v mask =“ $ {mask}” -v va =“ $ {va}” {print $ va}'
  / proc / net / route

关于linux - 如何仅用1个命令收集2个awk命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23383625/

10-11 23:12
查看更多