sed、cut和awk命令的使用
sed命令的使用
語法
sed[-n] ‘editing command’ [file…]
sed[-n] –e ‘editing command’ [file…]
sed[-n] –f scripting-file … [file…]
-e ‘editing command’:將editingcommand使用在輸入資料上。當有多個命令需要使用時,就必須使用-e了
-f script-file:從script-file中讀取編輯命令。當有多個命令需要執行時,此選項相當有用。
-n:不是每個最後已修改結果行都正常列印,而是顯示以p指定的行
若無-e或-f選項,sed會將第一個引數看作是要使用的
editing command的幾種形式
1、s分隔符原始文字分隔符替換文字分隔符
例如s;/home/tolstoy/;/home/lt/;表示將/home/tolstoy替換成/home/lt
2、s分隔符原始文字分隔符 &替換文字分隔符
如s;\(/home\)/tolstoy/;&\1/lt/;表示將/home/tolstoy替換成/home/tolstoy//home/lt
3、s分隔符原始文字分隔符替換文字分隔符 g
如echo a b c abc | sed ‘s/a/A/’表示將’a b c abc’中4、所有的a替換成A
4、/模式/s
分隔符原始文字分隔符
表示針對匹配模式的行作處理
5、sed –n ’10,42p’foo.xml表示列印foo.xml的第10到42行的資料
6、sed ‘/foo/,/bar/s/baz/quux/g’表示從含有foo的行開始,再匹配是否有bar的行,再將匹配後的結果中,有baz的全換成quux
7、sed ‘/used/!s/new/used/g’表示將沒有used的每個行裡所有new替換成used
8、sed '/used/!d'表示把不匹配的刪除
cut的使用
語法
cut–c list [file…]
cut–f list [-d delim] [file…]
-c list:以字元為主,執行剪下的操作。
-d delim:通過-f選項,使用delim作為定界符。預設的定界符為製表字元
-f list:以欄位為主,作剪下的操作。list欄位編號或一段範圍的列表(以逗號分隔)
awk命令的使用
語法為
awk‘program’ [file…]
awk讀取命令列上所指定的各個檔案,一次讀取一條記錄,再針對第一行,應用程式所指定的命令。awk程式基本架構為
pattern{action}
pattern可以是任何表示式,但是在單命令列程式裡,通常是由斜槓括起來的ERE。action為任意的awk語句,但是在單命令列程式時,通常是一個print語句
pattern和action都能省略。省略pattern,則會對每一條輸入記錄執行action,省略action則等同於{print},將顯示整條記錄
awk設計的重點在欄位與記錄上:awk讀取輸入記錄,然後自動將各個記錄切分成欄位,將第條記錄內的欄位數目,儲存到內建變數NF。預設以空白分隔欄位,如空格與製表字元。
-
設定欄位分隔符
-F選項修改欄位分隔符,會自動設定FS變數
2、起始與清除
BEGIN與END,提供awk程式起始與清除操作。