【问题标题】:How to replace a paragraph using sed command如何使用 sed 命令替换段落
【发布时间】:2015-04-30 16:59:50
【问题描述】:

我的 Java 文件中有一个许可证文本。我想用另一个许可证替换它。我有很多 java 文件可以做到这一点。如何使用“sed”命令或 bash 脚本来做到这一点?

原始许可证的样子,

/* *一些txt *一些txt */ 包 abc;

我想将上面的许可文本替换为以下,

/* * 新许可证 * 新许可证 */ 包 abc;

【问题讨论】:

标签: bash sed awk text-processing


【解决方案1】:

这样就可以了...确保您首先进行测试而不使用 -i 标志,或者确保您最近备份了与您的查找模式匹配的任何文件。

for file in $(find /path -type f -name "*.jar" -exec egrep 'old license text' \;)
do
  sed -ri 's/old license text/new license text/g' ${file}
done

【讨论】:

    【解决方案2】:

    您是否仅限于sedawk 等?在 Perl 中这样做会更容易:

    perl -e 'undef $/;
      $_=<>;
      s|(/\*\n)[\s\S]*(\*/\s*package)|$1 * new license\n * new license\n$2|;
      print' in.txt
    

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 1970-01-01
      • 2015-11-04
      • 2018-09-16
      • 2015-05-22
      • 2013-10-11
      • 1970-01-01
      • 2021-10-12
      • 2020-09-22
      相关资源
      最近更新 更多