我想连接目录中某种类型的所有文件,但不包含每个文件的前两行。

我试过tail -n +3 path/to/files/foo_bar_* >> BigDataFile.dat

然而,BigDataFile.dat看起来像这样:

path/to/files/foo_bar_1.txt
data1   
data2  
data3  
path/to/files/foo_bar_2.txt
data1  
data2  
data3
etc…

我可以告诉 tail 不要插入带有路径和文件名以及额外行的注释吗?还是我应该使用其他方法?

Cat 效果很好,但我还没有找到不包含文件中前两行的好方法。


最佳答案
2

tail-q在处理多个文件时可以选择抑制打印标题。

另一种方法是使用 Awk(尽管我认为它比使用慢tail):

awk 'FNR>2' file*

其基本含义是:如果当前记录号(当前文件的)大于 2(默认情况下意味着:“如果当前行号大于 2”),则打印该行。

% cat file1
f1line1
f1line2
f1line3
% cat file2
f2line1
f2line2
f2line3
% awk 'FNR>2' file*
f1line3
f2line3