awk [-F field-separator] 'commands' input-file(s)
awk [-F field-separator] 'commands' input-file
awk命令有点像java中的split,将input-file输入按行划分,根据field-sparator分段(默认是空格),然后根据commands输出。举例,最后5个登陆信息:
>>last -n 5
root pts/0 yworkstation.lan Mon Jan 8 11:16 still logged in
root pts/1 yworkstation.lan Sun Jan 7 21:45 - 10:50 (13:05)
root pts/0 yworkstation.lan Sun Jan 7 20:38 - 10:50 (14:12)
root tty1 Sun Jan 7 20:15 still logged in
root pts/0 yworkstation.lan Thu Dec 28 23:31 - 00:07 (00:36)
wtmp begins Wed Jul 19 19:46:13 2017
>>last -n 5|awk '{print $1}'
root
root
root
root
root
wtmp
可以用sort来排序,去重(也可以用uniq)
-u 去重
-r 倒序
-o 重定向输出
-n 用数值定向,否则会按字符排序出现10比1小的情况
-t 设定分隔符
-k 设定排序的组序列 sort -n -k 2.2,3.1 facebook.txt :以第二个域的第二个字符开始到第三个域的第一个字符结束的部分进行排序。