以下行将 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
也就是最后两行)。