在Linux中,如何将两个控制台命令的输出合并到一个文本文件中?

时间:2013-04-07 23:04:17

标签: linux

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

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

如何将输出合并为单个文本文件?我可以将上述命令分成两个单独的文本文件,然后连接文件。有没有办法在不需要使用中间文本文件的情况下执行此操作?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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