以passwd文件中的2行测试: [root@rootop ~]# cat passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin # 默认awk以空格或制表符做为分隔符,通过-F可以指定分隔符 格式: awk -F '分隔符' # 单引号、双引号都可以 [root@rootop ~]# cat passwd | awk -F ":" '{print $1}' # 通过stdin标准输入做为要处理的数据 root bin [root@rootop ~]# awk -F ":" '{print $1}' passwd # 通过指定文件做为要处理的数据 root bin $1为打印分隔后的第几列 # 通过打印 NF 变量可以看到有几列 [root@rootop ~]# awk -F ":" '{print NF}' passwd 7 7 # 通过打印 NF 列可以打印最后一列 [root@rootop ~]# awk -F ":" '{print $NF}' passwd /bin/bash /sbin/nologin # 打印倒数第二列 [root@rootop ~]# awk -F ":" '{print $(NF-1)}' passwd /root /bin # 打印第一列并打印倒数第二列组成一行 [root@rootop ~]# awk -F ":" '{print $1$(NF-1)}' passwd root/root bin/bin # 如果中间想加个字符串可能会想到这么做 [root@rootop ~]# awk -F ":" '{print $1 "string" $(NF-1)}' passwd rootstring/root binstring/bin 可以看到是连接在一起,没有分隔(第一列、字符串、第二列之间没有空格) # 正确方法用逗号隔开,逗号表示添加空格 [root@rootop ~]# awk -F ":" '{print $1,"string",$(NF-1)}' passwd root string /root bin string /bin # 计算长度 [root@rootop ~]# awk -F ":" '{print length($1)}' passwd 4 3 # 过滤结果 通过{}花括号外的 /条件/ 实现过滤 [root@rootop ~]# awk -F ":" '/ro/ {print $1}' passwd root 类似于用grep过滤结果 [root@rootop ~]# awk -F ":" '{print $1}' passwd | grep ro root
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4286.html