探索字符截取命令之---awk命令

這裏給你們提個建議,在學習awk命令以前先掌握printf命令的用法。bash

printf '輸出類型輸出格式' 輸出內容ide

輸出類型:學習

%ns 輸出字符串spa

%ni 輸出整數3d

%m.nf 輸出小數blog


輸出格式:字符串

-n 換行get

-t tab鍵it



簡單的說,awk的出現就是爲了彌補cut命令的不足,對於用空格製做的表格中,cut命令再也不有用。io

例如:查看磁盤使用率,用cut命令截取字符串就不起做用的

wKioL1fjl8-xuOd4AADrxpHay3A274.png-wh_50

這時候,awk命令正好就彌補了cut命令在這方面的缺陷。

例如:截取根目錄的使用率

df -h | grep "/dev/sda2" | awk '{printf $5}' | cut -d "%" -f 1

wKioL1fjmyDjNKwdAADinNuN_BY531.png-wh_50


看明白了嗎?

有人可能會說沒有,那麼不要緊,咱們下面好好的來說一講到底awk該怎麼用

awk '條件1{動做1}條件2{動做2}...' 文件名

① 通常關係表達式作條件(BEGIN 和 END)

② > < >= <=等鏈接的條件


下面搞一個BEING和END的來練練手

wKioL1fjn4jgz7pEAADWvYiKA3A767.png-wh_50


END用法:

wKiom1fjn8-CuEIhAADNYfAn7Ig775.png-wh_50



還有一個很重要的就是FS內置變量:

例如:利用awk命令截取/etc/passwd中user1的第一列和第五列的字符串

cat /etc/passwd | grep "/bin/bash" | grep -v "root" | grep "user1"  \

| awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'

wKiom1fjoRCyzdfBAADGnRWCZMk820.png-wh_50


注意:awk自身還存在一個參數-F,用於指定分隔符。

例如:咱們要打印/etc/passwd中的第一列,怎麼操做?

wKioL1hMySTBR2vPAAAxKIKg-Zc486.png

相關文章
相關標籤/搜索