删除目录下文件中的指定行

删除目录下文件中的指定行

我有一个目录,它有很多子目录。

主页/文件夹 A/*
主页/文件夹 B/*

我想要做的是删除每个子目录中的文件中包含特定文本“密码”的所有行。

sed -i '/password/d' *

此命令只能用于文件,不能进入目录。如果您能提供任何有关如何执行此操作的建议,我将不胜感激。

答案1

我会findsed这样使用:

find /path/to/source -type f -exec sed '/password/d' {} +

添加-ised -i '/password/d'上面即可将更改写入文件中。

  • /path/to/source是您想要运行sed其中的文件及其子目录的目录路径。
  • 寻找-type fF仅限文件类型。
  • -exec command {} +命令将对找到的文件执行。

另请参阅和阅读在 -exec 命令中使用 '+' (加号) 和 ';' (分号) 有什么区别?

相关内容