如何使用 sed 删除文件的第一行?

如何使用 sed 删除文件的第一行?

以下行将 essay_i.txt 的内容附加到 essay1.txt 的末尾;

touch essay1.txt
for (( i = 1 ; i <= 10 ; i++ )); do
sed '2p' essay_"${i}".txt >> essay1.txt
done

我应该如何改变它以便不复制每个 essay_i.txt 的第一行(即只复制第 2 行->结束)?

答案1

要抑制第一行,请使用'1d'(即第 1 行,删除):

touch essay1.txt
for file in essay_*; do
  sed '1d' $file >> essay1.txt
done

输出将是

~$ cat essay1.txt 
line 2 from essay 1
line 3 from essay 1
line 2 from essay 2
line 3 from essay 2
...

essay_*对于当前工作目录中命名的所有文件。


除了使用sed,您还可以使用tail来完成这项工作:

tail -n +2 $file >> essay1.txt

其中的+2意思是从一个第二行开始(-n 2也就是最后两行)。

相关内容