cut命令可以将一行文字按照指定字符切分成多段并取出某一段,或者直接指定要取出的字符位置。
格式:
cut -d '指定字符' -f数字 //切分并取出指定列
cut -c 区间 //取出指定字符位置的字符串,区间用-表示,如2-4,8-,-9等
实例:
1 从登录信息中取出登录名那一列。
[root@localhost nta]# last | cut -d ' ' -f1
root
root
root
root
。。。。。。
2 取出$PATH中的第8个字符后面的内容。
[root@localhost nta]# echo $PATH | cut -c 8-
b64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
grep命令用于从文档中找出我们需要的那一行来。
格式:
grep -acinv ‘搜索字符串’ filename
参数:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
实例:
1 找出last中,有root的那些行。
[root@localhost nta]# last | grep root
root pts/0 172.16.150.189 Thu Aug 31 14:01 still logged in
root pts/2 172.16.150.199 Thu Aug 31 10:07 still logged in
root pts/5 172.16.150.184 Thu Aug 31 09:32 - 09:40 (00:08)
root pts/4 172.16.150.184 Thu Aug 31 09:32 - 09:35 (00:02)
。。。。。。
2 找出last中没有root的那些行,并输出行号。
wtmp begins Tue Jun 6 12:26:58 2017
[root@localhost nta]# last | grep -vn root
32:(unknown :0 :0 Wed Aug 30 15:31 still logged in
33:(unknown :0 :0 Wed Aug 30 15:26 - 15:31 (00:04)
55:(unknown :0 :0 Wed Aug 30 12:42 - 12:43 (00:00)
56:reboot system boot 3.10.0-327.el7.x Wed Aug 30 12:42 - 14:13 (1+01:31)
。。。。。。
sort命令是将文字的每一行按照指定规则排序。
格式:
sort [-fbMnrtuk] filename
参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是 tab 键;
-k :以那个区间 (field) 来进行排序的意思,
实例:
1 将用户账号信息(/etc/passwd)进行排序(可以看到默认是以第一个字母按照字母表顺序排序的)。
[root@localhost nta]# cat /etc/passwd | sort
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:987:984::/var/lib/chrony:/sbin/nologin
colord:x:992:990:User for colord:/var/lib/colord:/sbin/nologin
。。。。
2 将用户账号信息按照用户标识(第三列,数字)进行排序。
[root@localhost nta]# cat /etc/passwd | sort -t ':' -k 3 -n
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
。。。。。。
uniq
uniq显示输入的内容,但每个重复的行只显示一次。
格式:
uniq [-ic]
参数:
-i :忽略大小写字符的不同;
-c :进行计数
实例:
[root@localhost nta]# last | grep root | cut -d ' ' -f1 | uniq
root
[root@localhost nta]# last | grep root | cut -d ' ' -f1 | uniq -c
475 root
wc
wc命令用于检索文档的字数、行数和字符数。
格式:
wc [-lwm]
参数:
-l :仅列出行;
-w :仅列出多少字(英文单词);
-m :多少字符;
实例:
检查$PATH中有多少字符。
[root@localhost nta]# echo $PATH | wc -m
82