cat
c a t是一個簡單而通用的命令,可以用它來顯示檔案內容,建立檔案,c a t命令的一般形式為:
cat [options] filename1 ... filename2 ...
如果希望顯示名為m y f i l e的檔案,可以用:
$ cat myfile
如果希望顯示m y f i l e 1、m y f i l e 2、m y f i l e 3這三個檔案,可以用:
$ cat myfile1 myfile2 myfile3
如果希望建立一個名為b i g f i l e的檔案,該檔案包含上述三個檔案的內容,可以把上面命令的輸出重新導向到新檔案中:
$ cat myfile1 myfile2 myfile3 > bigfile
如果希望建立一個新檔案,並向其中輸入一些內容,只需使用c a t命令把標準輸出重新導向到該檔案中,這時c a t命令的輸入是標準輸入—鍵盤,你輸入一些文字,輸入完畢後按< C T R L - D >結束輸入.
exe:$cat>grade.txt
{輸入該檔案中的內容}
< C T R L - D >
awk:
a w k語言的最準系統是在檔案或字串中基於指定規則瀏覽和抽取資訊
調用awk
有三種方式調用a w k,第一種是命令列方式,如 awk [-F field-separator] 'commands' input-file(s)
[ - F域分隔字元]是可選的,因為a w k使用空格作為預設的域分隔字元,因此如果要瀏覽域間有空格的文本,不必指定這個選項,但如果要瀏覽諸如p a s s w d檔案,此檔案各域以冒號作為分隔字元,則必須指明- F選項,如 awk -F: 'commands' input-file
模式和動作
任何a w k語句都由模式和動作組成。在一個a w k指令碼中可能有許多語句。模式部分決定動作語句何時觸發及觸發事件。處理即對資料進行的操作。如果省略模式部分,動作將時刻保持執行狀態。模式可以是任何條件陳述式或複合陳述式或Regex。模式包括兩個特殊欄位B E G I N和E N D。使用B E G I N語句設定計數和列印頭。B E G I N語句使用在任何文本瀏覽動作之前,之後文本瀏覽動作依據輸入檔案開始執行
exe: $awk 'BEGIN{print "Name Belt\n--------------------"}{print $1"\t"$4}' grade.txt
Name Belt
---------------------------------
M.Tansley Green
域和記錄
a w k執行時,其瀏覽域標記為$ 1,$ 2 . . . $ n。這種方法稱為域標識。使用這些域標識將更容易對域進行進一步處理。使用$ 1 , $ 3表示參照第1和第3域,注意這裡用逗號做域分隔。如果希望列印一個有5個域的記錄的所有域,不必指明$ 1 , $ 2 , $ 3 , $ 4 , $ 5,可使用$ 0,意即所有域。(注意執行時不要混淆符號$和s h e l l提示符$,它們是不同的。)
儲存a w k輸出
有兩種方式儲存s h e l l提示符下a w k指令碼的輸出。最簡單的方式是使用輸出重新導向符號>檔案名稱,下面的例子重新導向輸出到檔案w o w。
exe:$awk '{print $0}' grade.txt>wow
第二種方法是使用t e e命令,在輸出到檔案的同時輸出到螢幕。在測試輸出結果正確與否時多使用這種方法。例如輸出重新導向到檔案d e l e t e _ m e _ a n d _ d i e,同時輸出到螢幕。
exe:$awk '{print $0}' grade.txt| tee d e l e t e _ m e _ a n d _ d i e