如果 FA 和 FB 是兩個純文字檔案,則
paste FA FB就是將 FA 和 FB 左右合併印到 stdout,兩者之間以一個跳格隔開。 如果 FA 的列數比 FB 多,則多出的那幾列就自己印出來。反之亦然。 例如
paste indian.txt student.dat的結果就是
one little 87250500 蔡君宗 M caijz two little 87113600 鄒男鈞 M zounj three little Indians 87015800 褚永培 F chuyp four little 87007900 周淑文 F zhousz five little 87114100 杜霖雅 F dulx six little Indians 86014000 徐珍聖 M xuzs seven little 86110900 王琇凱 M wangxk eight little nine little Indians ten little Indian boys
根據 paste 的設計,它一定要有兩個輸入檔案才行。 如果其中一個檔案名是 - 減號,代表它來自 stdin。 例如
cat -n indian.txt | head -7 | paste - student.dat | expand就得到
經過簡單的編輯,就可以把這個輸出結果排整齊。1 one little 87250500 蔡君宗 M caijz 2 two little 87113600 鄒男鈞 M zounj 3 three little Indians 87015800 褚永培 F chuyp 4 four little 87007900 周淑文 F zhousz 5 five little 87114100 杜霖雅 F dulx 6 six little Indians 86014000 徐珍聖 M xuzs 7 seven little 86110900 王琇凱 M wangxk
如果不要用跳格做分隔符號,可以用 -d (delimiter) 參數自己指定。 例如
head -7 indian.txt | paste -d : - student.dat | expand就得到
one little:87250500 蔡君宗 M caijz two little:87113600 鄒男鈞 M zounj three little Indians:87015800 褚永培 F chuyp four little:87007900 周淑文 F zhousz five little:87114100 杜霖雅 F dulx six little Indians:86014000 徐珍聖 M xuzs seven little:86110900 王琇凱 M wangxk
paste 的 - 減號還有一個用途,就是當您寫兩個 - 或是三個 - 的時候, 代表要將 stdin 進來的檔案排成兩行或三行。 例如
sort student.dat | paste - -就得到
86014000 徐珍聖 M xuzs 86110900 王琇凱 M wangxk 87015800 褚永培 F chuyp 87007900 周淑文 F zhousz 87113600 鄒男鈞 M zounj 87114100 杜霖雅 F dulx 87250500 蔡君宗 M caijz
讀者或許要問,前面 paste - - 的兩行排法是
如果想要1 2 3 4 5 6
該怎麼辦呢? 這類問題,可以在學習了完整的 awk 程式語言之後輕易解決。 我們留給讀者日後慢慢學習。1 4 2 5 3 6
習題
注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。
Created: Nov 19, 2000
Last Revised: Nov 19, 2000
© Copyright 2000 Wei-Chang Shann 單維彰