2011-12-11 36 views
5

在UNIX腳本編程,貓是可以2檔結合在一起的指令:通過合併前兩個unix:如何從2個輸入貓?

cat file1 file2 > file3 

這產生了第三位。

也,貓可以與管一起使用:

cat file1 | tail -4 

這將會列出最近4行文件1.

問題:我怎麼能結合過去的4行文件1和2的,生成文件3?

我在這裏有點失落:如何給2流輸入給貓?

+1

你用的是什麼外殼? – Staven

+0

謝謝你們,你們所有的腳本都可以使用! :D – athos

回答

5

Bash有一個process substitution特點:

cat <(tail -4 file1) <(tail -4 file2) 

我經常使用此功能的diff兩個文件稍微改變版本。

8

你可以做以下(在bash):

(tail -4 file1; tail -4 file2) > file3 

這不使用貓按您的問題,但它確實實現你所描述的目標。

1

出了什麼問題:

cat file1 | tail -4 > ./file3; cat file2 | tail -4 >> ./file3 

+3

在這種情況下,您可以使用:'tail -4 file1> ./file3;尾部-4./file2 >> ./file3'(只是使用尾巴而不是貓/尾巴) – Renato

2

您可以使用peemoreutils來做到這一點。這裏是我的解決方案

pee 'tail file1' 'tail file2' </dev/null > file3 
+0

這一個適用於永遠不會完成的命令,比如「tail -f」 – golimar