如何从所有文件中删除特定行?

时间:2013-03-22 12:30:55

标签: linux sed

我想从许多文件中删除以'sometext'开头的所有行:

find . -name "*.php"|xargs -I {} sed -e '/^sometext/d' {}

但这会把我输出到控制台。如何直接修改这些文件?

3 个答案:

答案 0 :(得分:1)

使用sed的-i选项:

 sed -i -e '/^sometext/d' file

答案 1 :(得分:1)

告诉sed“就地”修改文件:

find . -name "*.php" | xargs sed -i '' -e '/^sometext/d'

请注意,''后需要空白-i,否则将创建带有默认后缀的新副本。

另请注意修剪-I

中的不必要的xaegs

答案 2 :(得分:0)

您可以使用exec完成此操作:

find . -name "*.php" -exec sed -i '/^sometext/d' {} \;