首页 > 解决方案 > sed * 只修改第一个文件

问题描述

我想删除大量 ASCII 文件的前 40 行并保存没有这 40 行的 ASCII 文件

我在 OSX High Sierra 下工作,意识到除非我创建备份文件,否则该-i选项sed不起作用,所以我尝试使用以下命令:

sed -i'backup' -e '1,40d' *.txt

然而,它只修改和删除我的第一个文件中的前 40 行(按字母顺序),而不是其他行。

如何只用一个命令编辑多个文件?

谢谢

标签: sedmacos-high-sierra

解决方案


您可以使用以下命令

  • 查看当前文件夹
  • 忽略子文件夹
  • 仅考虑文件名以 '*.txt' 结尾的文件
  • 在执行sed命令之前。

命令:

   find . -maxdepth 1 -type f -name '*.txt' -exec sed -i 'backup' -e '1,40d' {} \;

推荐阅读