gpt4 book ai didi

linux - awk + ​​在 awk 中设置外部变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:31 27 4
gpt4 key购买 nike

以下 awk 语法从文件中截取行

从有端口XNT1的行

直到 END OF COMMAND

 #  awk '/\/stats\/port XNT1\/if/,/END OF COMMAND/' /var/tmp/test 

>> SW_02_03 - Main# /stats/port XNT1/if
------------------------------------------------------------------
Interface statistics for port XNT1:
IBP/CBP Discards: 0
L3 Discards: 0


>> SW_02_03 - Port Statistics# END OF COMMAND
#
#
#

现在我在 awk 命令中将外部变量设置为 XNTF=XNT1

但出于某种原因,awk 中的 XNTF 无法获取“XNT1”值,并且 awk 无法显示这些行!!!!!!!!!

  #  awk -v XNTF=XNT1 '/\/stats\/port XNTF\/if/,/END OF COMMAND/' /var/tmp/test

请指教为什么当我设置外部变量时 awk 不起作用?以及如何修复它?

最佳答案

我通常尽量避免 awk , 中的 range 命令,因为它不太灵活。这应该做:

awk -v XNTF=XNT1 '$0~"/stats/port " XNTF "/if" {f=1} f; /END OF COMMAND/ {f=0}' file
>> SW_02_03 - Main# /stats/port XNT1/if
------------------------------------------------------------------
Interface statistics for port XNT1:
IBP/CBP Discards: 0
L3 Discards: 0


>> SW_02_03 - Port Statistics# END OF COMMAND

关于linux - awk + ​​在 awk 中设置外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com