我想从许多文件中删除以'sometext'开头的所有行:
find . -name "*.php"|xargs -I {} sed -e '/^sometext/d' {}
但这会把我输出到控制台。如何直接修改这些文件?
答案 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' {} \;