linux系统中cut sort tee 和uniq命令的使用
cut命令的使用 -----分割
[root@wang wang]# cut -d ':' -f 1 passwd1 |head -n3 //cut命令用于切割。-d后面指 定分隔符,用单引号引起来
root //-f指定第几段。即用分隔符分割后的第几段
bin
daemon
[root@wang wang]# cut -c1 passwd1 |head -n 3 //cut后面指定一个数字,表示截取第几个字符
r
b
d
[root@wang wang]# cut -c1-5 passwd1 |head -n 3 //cut后面指定一个数字域,表示街区从几到几的字符
root:
bin:x
daemo
sort命令的使用-----排序
/* sort命令的几个选项:-t分隔符:作用和cut后的-d选项一样 -n:使用纯数字排 -r:反向排序 -u:去重复 -kn1.n2:由区间排序到n2区间,也可以写-kn1,即对n1字段排序*/
[root@wang wang]# head -n5 passwd1 |sort //如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行排序,最后将他们升序排列
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[root@wang wang]# head -n5 passwd1 |sort -t: -k3 -n //-t后是分隔符,对第三行进行排序,-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
[root@wang wang]# head -n5 passwd1 //先看一下passwd文件的前5行
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
[root@wang wang]# head -n5 passwd1 |sort -n -u //对前5行进行纯数字排序 ,然后在去重复 (sort进行-n纯数字排序时,系统会把所有的字母都看成0
root:x:0:0:root:/root:/bin/bash //再加一个-u去重复,就会只剩下一行
/*uniq用来去重复的行,最常用的选项只有一个-c:统计重复的行,并把行数写在前面*/
[root@wang ~]# vim test.c //用vim打开一个文件,写入几个数字
111
222
333
222
444
333
~
[root@wang ~]# uniq test.c //直接用uniq命令,发现文件并没有什么变化
111
222
333
222
444
333
[root@wang ~]# sort test.c |uniq //先排序,然后在用uniq,故使用uniq的前提是必须给文件排序然后在去重复
111
222
333
444
[root@wang ~]# sort test.c |uniq -c //加上-c选项后,会把重复的行数显示在那一行前面
1 111
2 222
2 333
1 444
tee命令,后跟文件名/*类似于重定向“>",但是比重定向多了一个功能,在把文件写入后面所跟文件的同时,还显示在屏幕上*/
[root@wang ~]# echo "aaaaaaaaaa" >test.c //向test.c文件中重定向
[root@wang ~]# cat test.c //显示重定向后的信息
aaaaaaaaaa
[root@wang ~]# echo "bbbbbbbb" |tee test.c //tee运算后的结果,把要写的内容在屏幕上显示出来
bbbbbbbb
tr和split命令
/*tr用来替换字符,常用来处理文档中出现的特殊字符:-d:删除某个字符,-d后面跟要删除的字符 -s:把重复的字符去掉*/
[root@wang ~]# head -n 2 /root/wang/passwd1 |tr '[a-z]' '[A-Z]' //把文件的前两行的小写字母换成大写字母
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
[root@wang ~]# head -n 2 /root/wang/passwd1 |tr 'a' 'A' //把文件中的小写a换为大写的”A“
root:x:0:0:root:/root:/bin/bAsh
bin:x:1:1:bin:/bin:/sbin/nologin
split用于切割文档 //
[root@wang wang]# ls
passwd1
[root@wang wang]# split -b 500 /root/wang/passwd1 //切割文档,-b选项依据大小来切割文档,单位为byte
[root@wang wang]# ls //如果split不指定目标文件名,则会以xaa xab...这样的文件名来存取切割后的文件
passwd1 xaa xab xac
[root@wang wang]# split -b 500 /root/wang/passwd1 123 //指定文件名
[root@wang wang]# ls
123aa 123ab 123ac passwd1 xaa xab xac
[root@wang wang]# wc -l passwd1 //查看文档共有多少行
29 passwd1
[root@wang wang]# split -l 10 passwd1 //-l表示按行数的多少来切割文档
[root@wang wang]# wc -l * // 查看切割后的文档
29 passwd1
10 xaa
10 xab
9 xac
58 总用量
转载于:https://blog.51cto.com/zidingyi/1706422