先創建一個文件:vim hi 取第2個欄位和第3個欄位: awk '{print $2,$3}' hi 註意{}中的,逗號會在輸出的時候轉變為空格 加入字元說明: 顯示整行: 指定欄位分隔符:-F 內建變數:NF NF:欄位數量, $NF代表最後一個欄位 NR:行數 /regular express ...
先創建一個文件:vim hi
取第2個欄位和第3個欄位:
awk '{print $2,$3}' hi 註意{}中的,逗號會在輸出的時候轉變為空格
加入字元說明:
顯示整行:
指定欄位分隔符:-F
內建變數:NF NF:欄位數量, $NF代表最後一個欄位
NR:行數
/regular expression/: 僅處理能夠被此處的模式匹配到的行
取反:awk '!/^john/{print $2}' hi
上面的語句表示如果第三個欄位大於等於500,則取第一和第三個欄位
判斷最後一個欄位是否為/bin/bash,如果是則列印第一和最後一個欄位
做模式匹配
cat hi
做行範圍匹配
取得行範圍:
if條件判斷語句:判斷第三個欄位的值是否大於500
字元替換:
echo "this is a test" | awk 'gsub("test","abd")'
cat hi
while迴圈:
NF代表當前行的欄位數,length是個函數,取得$i這個欄位的字元長度
awk '/^tom/{i=1;while(i<=NF) {if(length($i)>=4){print $i,length($i)}; i++}}' hi
在while迴圈中又嵌套了if語句
上面的while語句也可以用for迴圈語句代替
awk '/tom/{for(i=1;i<=NF;i++) {print $i,length($i)}}' hi