awk命令使用

2021-10-02 05:53:06 字數 1986 閱讀 6930

awk 格式化輸出,報告生成器

**格式: awk 選項 『程式』 檔案

選項:

-f「」 指定分隔符  「[[:space:]]+|:」 多個分隔符

-v 變數賦值

內建變數:

ofs:輸出字段分隔符(列)  ofs=':'

rs:輸入行分隔符

ors:輸出行分隔符

nf:字段數量(列) \$(nf-1)即倒數第二字段

nr:記錄數量(行) nr==4 即第四行

自定義變數 -v f=2

引用外部變數 '$name'

程式:

befin:處理之前

end:處理之後

模式/ / 正規表示式 行範圍/ /,/ /

字段:

即列,需要定義分隔符 $1為第一列  $0為所有列
動作:

print 列印,相當於echo  

printf 格式化輸出

printf:

必須指定分隔符,不會自動,需\n才會換行

乙個格式符對應乙個引數$1

格式符: %d取數字整數

%s取字串 %-15s即左對齊15字元 預設右對齊

比較操作符:

==等於  !=不等於  >大於  《小於
邏輯操作符:

與&&  或||  非!
流程控制:

''

'$3>100 && $3<1000'

函式:

sub()查詢替換 替換乙個

'' gsub()全部替換

cat /etc/passwd |awk -f":" 'gsub(/:/,"-",$0)'

system() 呼叫shell函式****

cat /etc/passwd|

awk -f: '' 預設全部字段,即列

cat /etc/passwd|

awk -f: '' 以:為分隔符取1,3列

cat /etc/passwd|

awk -f: '' 以:為分隔符取1,3列並且以tab建隔開df|

awk -f"[[:space:]]+|%"

'/^\/dev\/sd/' 取分割槽利用率

cat /etc/passwd|

awk -f":" -v ofs=

" "'/\<0\>/,/\<50\>/'以:為分隔符取0-50uid使用者的shell並以空格隔開

取檔案許可權碼

stat /tmp |

awk -f"("

'nr==4'

統計/etc/fstab檔案中每個檔案系統型別出現的次數

cat /etc/fstab |

awk -f" "

'/^uuid/'

|sort

|uniq -c

統計/etc/fstab檔案中每個單詞出現的次數

cat /etc/fstab |

grep -o '\<[a-z]\+\>'

|sort

|uniq -c |

sort -nr

提取出字串yd$c@m05mb%9&bdh7dq+yvixp3vpw中的所有數字

echo

"yd$c@m05mb%9&bdh7dq+yvixp3vpw"

|grep -o [0-9]

|xargs

awk命令使用

awk是linux下很有用的列編輯工具。示例如下 檔案tran map.txt內容如下 tr zhuanzhang sa unknown 1.組織字串。將第一列以字串形式列印出來 awk tran map.txt tr sa 2.形成格式化 將第一列值轉換為第二列值 採用檔案指令碼方式。指令碼檔案為...

awk命令使用

linux awk command info awk是乙個行編輯器 和sed是互補關係 主要功能是擷取,它類似於cut的功能,但是功能更強大 不單可以擷取還可以運算 排序 還支援shell語句等一些功能 awk語法 awk option filename awk 認為每一行都是一條記錄,記錄與記錄的...

awk命令使用

awk 報告生成工具 把檔案中讀取到的每一行的每個字段分別進行格式化,而後進行顯示 awk new awk nawk gnu awk,gawk 用法格式 awk option script file awk option pattern file action print 1 模式 pattern ...