假设三个文件f1,f2,f3各包含:
header
line1
line2
现在我想连接以" f"开头的所有文件。但是跳过每个文件的第一行 - 最终结果应该是:
line1
line2
line1
line2
line1
line2
答案 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