【问题标题】:Replace multiline text in a file using shell script使用 shell 脚本替换文件中的多行文本
【发布时间】:2020-07-31 09:49:09
【问题描述】:

我想替换文件中的多行文本。

示例: 我要换

Hello
World

Hi
Programmer

谁能帮忙。

【问题讨论】:

标签: linux bash shell ubuntu


【解决方案1】:

Perl 来救援!

perl -p -0777 -e 's/Hello\nWorld/Hi\nProgrammer/g'
  • -0777 启用 slurp 模式,即它将整个文件作为单个块读取。您还可以使用-00 启用段落模式:它以至少两个换行符分隔的块读取输入,因此除非要替换的文本包含两个连续的换行符,否则您也可以使用此模式。
  • -p 对于每个块,它运行代码并打印结果

【讨论】:

    【解决方案2】:

    使用这个命令你可以完成你的任务。 sed -i 's/Hello\nWorld/Hi\nProgrammer/g' your_file.txt

    【讨论】:

    • 这也将“Hello Mars”替换为“Hi Mars”。
    • Sed 逐行处理输入。多行匹配在 sed 中不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2013-03-12
    • 2021-01-12
    相关资源
    最近更新 更多