代码之家  ›  专栏  ›  技术社区  ›  nickcrv06

使用介于特殊字符之间的awk提取文本

  •  0
  • nickcrv06  · 技术社区  · 4 年前

    我有以下文件:

    # cat vsrxa-1.xml
    
    <some text>
          <source file='/PATH/vsrx.qcow2'/>
    <some text>
    

    我试图只打印('')之间的内容 比如:

    <source file='/PATH/vsrx.qcow2'/>
    
    To print only: 
    /path/vsrx.qcow2
    
    But not to print:
    '/PATH/vsrx.qcow2'
    

    我试着用 cat <file> | awk -F[=,] '{print $2}' 但我只得到: '/PATH/vsrx.qcow2'/>

    1 回复  |  直到 4 年前
        1
  •  1
  •   sseLtaH    4 年前

    使用 awk

    $ awk -F"'" '{print $2}' file
    /PATH/vsrx.qcow2
    

    使用 sed

    $ sed -n "s/[^']*'\([^']*\).*/\1/p" file
    /PATH/vsrx.qcow2