我正在使用命令行和sed。我需要一个命令来递归地从多个文件中删除。找到“string1”并删除它和“string2”之间的删除
我已经离开了这样的议论:
<!--String 1 -->
Code to delete goes here
<!--String 2 -->
所以我需要删除串1,文本之间串2,在当前目录下的所有文件。
希望得到任何帮助:)
我正在使用命令行和sed。我需要一个命令来递归地从多个文件中删除。找到“string1”并删除它和“string2”之间的删除
我已经离开了这样的议论:
<!--String 1 -->
Code to delete goes here
<!--String 2 -->
所以我需要删除串1,文本之间串2,在当前目录下的所有文件。
希望得到任何帮助:)
只需使用地址:
sed -e '/<!--String 1 -->/,/<!--String 2 -->/d'
更新:递归应用sed
命令文件的路径下,你可以使用find
:
find /path/to/directory -type f -exec sed -e '/<!--String 1 -->/,/<!--String 2 -->/d' {} \;
你是什么意思“从多个文件递归”? – choroba 2013-04-30 11:19:12
@choroba:在当前目录和子目录中。我在下面评论你的答案,它应该适用于你的sed行。只需用一些递归文件搜索来更新你的答案。 – Milde 2013-04-30 12:14:03