前一節我們費了好大的工夫,使得可以抽印文字檔案中的任意一列。 如果應用一個更強的工具 awk,就會事半功倍。 awk 是個具有一般用途的解讀型程式語言。 它的詳細說明,將有專文介紹,此處只例舉一二。 如果要印出 forty.txt 的第 7 列,只要說
awk 'NR==7' forty.txt就行了。您可以把 7 換成任意一個正整數。如果 forty.txt 沒有那麼多列, 就不會印出結果。例如您可以試試看
awk 'NR==107' forty.txt
如果我們要將 forty.txt 從第 17 列到第 24 列都印出來, 可以說
head -24 forty.txt | tail -8也可以換個說法:
awk 'NR==17, NR==24' forty.txt
如果我們只要抽印 forty.txt 的第 3 列、第 15 列和第 17 列,可以說
awk 'NR==3 || NR==15 || NR==17' forty.txt其中 || 就是「或」的意思。
awk 還可以接受 stdin 輸入。所以我們可以說
head -20 forty.txt | awk 'NR==3 || NR==15 || NR==17'如果 forty.txt 有很多列的話 (譬如說,十萬列), 後面這個指令比前面那個指令更有效率一些。
習題
注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。
Created: Nov 19, 2000
Last Revised: Nov 19, 2000
© Copyright 2000 Wei-Chang Shann 單維彰