2013-04-07 72 views
0

我獲得第一行和最後1萬行的csv如下:在Linux中,如何將兩個控制檯命令的輸出合併到一個文本文件中?

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

如何合併輸出到一個單一的文本文件?我可以將上述命令輸入到兩個單獨的文本文件中,然後連接文件。有沒有辦法做到這一點,而不需要使用中介文本文件?

+0

您無法將命令傳送到文件。您可以將命令的輸出重定向到文件,也可以將輸出傳送到另一個進程,但不能將輸出傳送到文件。您只能將輸出管道輸送到管道。 (從技術上講,管道是一個文件,但不能將輸出管道輸送到常規文件。) – 2013-04-08 04:45:58

回答

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 
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 
相關問題