例如:我有01.txt
和02.txt
文件,需要将这些文件的数据附加到新文件中new.txt
。
它应该根据01.txt
后面的02.txt
文件附加数据。
在此之前,我必须仅删除文件的第一行和最后一行(01.txt
02.txt
),然后将它们附加到新文件中。
我们如何使用 UNIX 来实现这一点?
答案1
另一种方法:
for file in 01.txt 02.txt; do sed '1d;$d;' "$f"; done > output
如果您需要连接许多文件,这尤其有用:
for file in *.txt; do ...
您还可以使用 shell 扩展:
for file in 0{1,2}.txt; do ...
答案2
您可以使用 sed 删除第一行和最后一行:
sed -e '1d' -e '$d' file1 > output
sed -e '1d' -e '$d' file2 >> output
sed -e '1d' -e '$d' file3 >> output
答案3
答案4
使用 GNU sed
:
sed -s '1d;$d' ./*.txt > output
注意:您要确保输出文件的名称与通配模式(*.txt
上面)不匹配。否则,你必须这样写:
sed -sn '1d;$d;w output.txt' ./*.txt
(假设output.txt
事先不存在)。