一次删除文件夹中的几行文件(避免无限循环)

一次删除文件夹中的几行文件(避免无限循环)

我在一个文件夹中有多个文件,我想删除所有文件的前几行。如果我这样做:

sed -i.bak '1,2000d' *.dat

前 2000 行被删除,但文件名仍是这种形式*.dat,接下来的 2000 行也被删除,依此类推,直到文件为空。我该如何解决这个问题?最好不要使用复杂的脚本?文件太多,无法列出所有文件名,输入所有文件名太复杂了。

答案1

您可以使用 for 循环,这样对每个文件只执行一次命令:

for file in *.dat; do sed -i.bak '1,2000d' "$file"; done

注意,-i.bak备份原始文件并以.bak结尾。

相关内容