這裏給你們提個建議,在學習awk命令以前先掌握printf命令的用法。bash
printf '輸出類型輸出格式' 輸出內容ide
輸出類型:學習
%ns 輸出字符串spa
%ni 輸出整數3d
%m.nf 輸出小數blog
輸出格式:字符串
-n 換行get
-t tab鍵it
簡單的說,awk的出現就是爲了彌補cut命令的不足,對於用空格製做的表格中,cut命令再也不有用。io
例如:查看磁盤使用率,用cut命令截取字符串就不起做用的
這時候,awk命令正好就彌補了cut命令在這方面的缺陷。
例如:截取根目錄的使用率
df -h | grep "/dev/sda2" | awk '{printf $5}' | cut -d "%" -f 1
看明白了嗎?
有人可能會說沒有,那麼不要緊,咱們下面好好的來說一講到底awk該怎麼用
awk '條件1{動做1}條件2{動做2}...' 文件名
① 通常關係表達式作條件(BEGIN 和 END)
② > < >= <=等鏈接的條件
下面搞一個BEING和END的來練練手
END用法:
還有一個很重要的就是FS內置變量:
例如:利用awk命令截取/etc/passwd中user1的第一列和第五列的字符串
cat /etc/passwd | grep "/bin/bash" | grep -v "root" | grep "user1" \
| awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'
注意:awk自身還存在一個參數-F,用於指定分隔符。
例如:咱們要打印/etc/passwd中的第一列,怎麼操做?