我在一个文件夹中有多个文件,我想删除所有文件的前几行。如果我这样做:
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
结尾。