0

我正在获取 csv 的第一行和最后 10,000 行,如下所示:

head workrace.csv -n 1
tail workrace.csv -n 10000

如何将输出合并到单个文本文件中?我可以将上述命令通过管道传输到两个单独的文本文件中,然后将这些文件连接起来。有没有办法在不需要使用中间文本文件的情况下做到这一点?

4

2 回答 2

3

您可以在子 shell 中运行这两个命令:

( head workrace.csv -n 1 ; tail workrace.csv -n 10000 ) > result.txt

或者,您可以使用>>重定向运算符将内容添加到文件中:

head workrace.csv -n 1      > result.txt
tail workrace.csv -n 10000 >> result.txt
于 2013-04-07T23:08:23.090 回答
0

choroba 未提及的其他一些选项:

F=workrace.c
{ head -n 1 $F; tail -n 10000 $F; } > result.txt  # no subshell
awk 'NR==1 || NR>k-1000' k="$( wc -l < $F )" $F > result.txt
exec > result.txt   # truncate result.txt and direct output of remaining commands to it
head -n 1 $F
tail -n 10000 $F
于 2013-04-08T04:44:37.263 回答