0
我有我的Java文件的许可证文本,以取代一个段落。我想用另一个许可证替换它。我有大量的java文件来做到这一点。我怎样才能通过使用“sed”命令或bash脚本?如何使用sed命令
原证的样子,
/* * some txt * some txt */ package abc;
而且我想,以取代上述许可文本之后,
/* * new license * new license */ package abc;
我有我的Java文件的许可证文本,以取代一个段落。我想用另一个许可证替换它。我有大量的java文件来做到这一点。我怎样才能通过使用“sed”命令或bash脚本?如何使用sed命令
原证的样子,
/* * some txt * some txt */ package abc;
而且我想,以取代上述许可文本之后,
/* * new license * new license */ package abc;
像这样的事情会做到这一点...请务必先进行测试,而无需使用-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
您仅限于sed
,awk
,等?这将是更容易做到这一点在Perl:
perl -e 'undef $/;
$_=<>;
s|(/\*\n)[\s\S]*(\*/\s*package)|$1 * new license\n * new license\n$2|;
print' in.txt
类似的问题已经问。这可能会帮助你。 http://stackoverflow.com/questions/8454525/how-to-substitute-a-paragraph-in-file – Agnivesh
我会使用一个补丁文件,可能带有模糊匹配止跌回升。 – ams
类似的XML [问题](http://stackoverflow.com/q/17213944/2098699)。 – Endoro