将 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];}'