探索字符截取命令之---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

相关文章
相关标签/搜索