连接跳过第一行的多个文件

时间:2014-06-30 13:56:39

标签: bash

假设三个文件f1,f2,f3各包含:

header
line1
line2

现在我想连接以" f"开头的所有文件。但是跳过每个文件的第一行 - 最终结果应该是:

line1
line2
line1
line2
line1
line2

3 个答案:

答案 0 :(得分:3)

你可以这样做:

awk FNR!=1 f* > result

答案 1 :(得分:0)

使用gnu coreutils:

tail -n+2 f*

否则:

for f in f*; do tail -n+2 "$f"; done

或者,如果没有文件名包含换行符

ls f* | xargs -I{} tail -n+2 {}

以上所有假设没有名称以f开头的目录。否则,再次假设没有文件名包含换行符,您可以使用:

ls -p f* | grep -v / | xargs -I{} tail -n+2 {}

或者您可以将stderr重定向到/dev/null,以忽略来自tail的错误消息。

答案 2 :(得分:-1)

find f* -type f -exec tail -n +2 {} \; -exec printf "\n" \; > result

结果中的潜在空行可以通过:

grep -v '^$' result > result2