sed,awkblog
1. sed (string editor)get
使用-i能夠將結果運用於原文件string
sed 's/text1/text2/' file > newfileit
mv newfile fileawk
其實能夠使用 sed -i 's/text1/text2/' file 搞定變量
若是加後綴g表示所有替換,不加只會替換每行的第一處匹配sed
使用Ng選擇從第幾處開始匹配,第二個例子是爲了說明不管使用/或者|或者其餘什麼字符,都是能夠用做定界符的file
移除空白行command
sed '/^$/d' # /pattern/d或移除匹配到的行,注意沒有s了im
用&表示匹配到的內容,而且\d在sed命令中不支持。。
第二個例子,用\1 \2分別標記以前括號裏pettern匹配到的內容
若是須要對sed中的內容求值,能夠使用雙引號
2. awk
awk一般由BEGIN,END和可以使用模式匹配的通用語句塊三個部分組成,這三個部分都是可選的,腳本一般包含在雙引號或者單引號中
1)執行BEGIN
2)讀取stdin中的一行,而後執行pattern中的語句塊,重複這個過程,直到文件讀完;
這個例子中沒有提供pattern,則認爲每一行都是匹配的
3) 執行END
awk中的print使用
1. print的參數以逗號分隔時,打印出來的參數以空格做爲定界符
2. 雙引號當作拼接操做符
echo在這裏的做用是輸入一行,使得awk只執行一次
特殊變量
NR: 表示記錄數量(number of rows),在執行中對應於當前行號
NF: 表示字段數量(number of fields),在執行過程當中對應於當前行的字段數
$0: 表示執行過程當中,當前行的內容
$1: 第一個字段的文本內容
$2: 第二個字段的文本內容
-v選項將外部變量(非來自stdin)傳遞給awk
從文件傳輸變量
getline讀取某一行
例如跳過第一行
指定樣式
設置定界符
或者awk -F: '{print $NF}' /etc/passwd
經過getline讀取外部命令輸出到變量output
"command" | getline output