将 sed 命令转换为 awk 以使用变量
Convert a sed command into awk to work with variables
我有这个文件,其中包含:
cat file.txt
<interface type='network'>
<mac address='FXP-MACADDRESS'/>
<source network='FXP-BRIDGE'/>
<target dev='FXP-INT-NAME'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
通过使用这个命令:
cat file.txt | sed -n '1,/0x03/p' | tail -6 | awk '/mac address/ {print }' | awk -F"'" '{print }'
Output:
FXP-MACADDRESS
我的问题是我读到 sed
不允许使用变量。我想将 0x03
转换为 fxp0_slot=0x03
并在命令中使用 $fxp0_slot
。
有谁知道通过使用变量来获得相同输出的替代方法吗?
在四处挖掘之后,我找到了解决方案:
插槽 3=0x03
cat ... | awk '{a[++i]=[=10=];}''/'$slot3'/{for(j=NR-5;j<=NR;j++)print a[j];}'
我有这个文件,其中包含:
cat file.txt
<interface type='network'>
<mac address='FXP-MACADDRESS'/>
<source network='FXP-BRIDGE'/>
<target dev='FXP-INT-NAME'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
通过使用这个命令:
cat file.txt | sed -n '1,/0x03/p' | tail -6 | awk '/mac address/ {print }' | awk -F"'" '{print }'
Output:
FXP-MACADDRESS
我的问题是我读到 sed
不允许使用变量。我想将 0x03
转换为 fxp0_slot=0x03
并在命令中使用 $fxp0_slot
。
有谁知道通过使用变量来获得相同输出的替代方法吗?
在四处挖掘之后,我找到了解决方案:
插槽 3=0x03
cat ... | awk '{a[++i]=[=10=];}''/'$slot3'/{for(j=NR-5;j<=NR;j++)print a[j];}'