1

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

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

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

4

3 回答 3

1

使用 sed 的 -i 选项:

 sed -i -e '/^sometext/d' file
于 2013-03-22T12:32:44.990 回答
1

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

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

注意''后面的空格-i是必须的,否则会创建一个带有默认后缀的新副本。

如果你不需要-I的话,还要注意修剪xaegs

于 2013-03-22T12:34:04.580 回答
0

您可以通过以下方式完成此操作exec

find . -name "*.php" -exec sed -i '/^sometext/d' {} \;
于 2013-03-22T12:43:40.160 回答