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

将regex所在的行替换为regex中捕获的文件的内容

sed
  •  0
  • user17227456  · 技术社区  · 3 年前

    如何获取文件的内容,该文件的名称是通过regex获得的,并通过替换该行的方式插入sed的应用文件中? 例如插图

    $ sed -E '/^file:\s*(\S+)/ r"\1"' file.txt
    

    尝试将文件的内容作为可见字符串,在下面找到 file: file.txt

    0 回复  |  直到 3 年前
        1
  •  1
  •   potong    3 年前

    这可能适用于您(GNU sed):

    sed -E '/^file:\s*(\S+).*/{p;s//cat "\1"/e}' file
    

    打印与regexp匹配的行,然后评估命令 cat 在第一个背面参考上。

    如果不需要匹配行,则替换即可:

    sed -E 's/^file:\s*(\S+).*/cat "\1"/e' file
    
    推荐文章