一、sort #排序 将不相同的行进行排序在一起 默认是根据第一列进行排序 默认是以空白字符为分割符
#默认以字母进行排序
选项:
	-k	        	#指定哪一列为分隔符  
	
	-n        		#以数值大小的方式进行排序 
	
	-r	        	#倒叙排序  
	-t        		#指定分割符  
	
cat>sort.txt<<EOF
b   5
c   3
a   11
f   2
d   9
EOF
[root@jindada ~]# cat sort.txt 
b   5
c   3
a   11
f   2
d   9
[root@jindada ~]# sort sort.txt 
a   11
b   5
c   3
d   9
f   2
[root@jindada ~]# sort  -k2   sort.txt 
a   11
f   2
c   3
b   5
d   9
[root@jindada ~]# sort  -nk2   sort.txt 
f   2
c   3
b   5
d   9
a   11
[root@jindada ~]# sort  -rnk2  sort.txt 
a   11
d   9
b   5
c   3
f   2
[root@jindada ~]# cp  /etc/passwd  ./
[root@jindada ~]# cat passwd 
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@jindada ~]# sort  -t ":"  -nk3  passwd
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
cat>file.txt<<EOF
123
abc
123
edf
456
123
abc
EOF
[root@jindada ~]# cat file.txt 
123
abc
123
edf
456
123
abc
[root@jindada ~]# sort  file.txt 
123
123
123
456
abc
abc
edf
二、uniq #去重 去除重复的行 只能去除相同相邻的行 统计 将重复的行的次数统计出来 跟sort结合使用
|	             #管道   将前面命令的执行结果交给后面的命令继续执行   操作的是数据  
选项:
-c #统计重复的行的次数
[root@jindada ~]# sort  file.txt 
123
123
123
456
abc
abc
edf
[root@jindada ~]# sort  file.txt | uniq  
123
456
abc
edf
[root@jindada ~]# sort  file.txt | uniq  -c
      3 123
      1 456
      2 abc
      1 edf
[root@jindada ~]# sort  file.txt | uniq  -c | sort  
      1 456
      1 edf
      2 abc
      3 123
[root@jindada ~]# sort  file.txt | uniq  -c | sort  -n
      1 456
      1 edf
      2 abc
      3 123
[root@jindada ~]# sort  file.txt | uniq  -c | sort  -rn
      3 123
      2 abc
      1 edf
      1 456
三、cut #取列 awk命令的小弟 默认的分隔符为tab键
选项:
		-d	          	#指定分隔符 
		
		-f	          	#取出指定的列 
        
        -c	          	#取出指定的字符  按照行进行处理的  
	
[root@jindada ~]# echo "root:x:0:0:root:/root:/bin/bash" >test.txt
[root@jindada ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
#取出第七列
[root@jindada ~]# cut  -d ":"  -f7   test.txt 
/bin/bash
#取出第一列和第七列
[root@jindada ~]# cut  -d ":"  -f1,7   test.txt 
root:/bin/bash
#取出第五列到第七列
[root@jindada ~]# cut  -d ":"  -f5-7   test.txt 
root:/root:/bin/bash
[root@jindada ~]# cut  -d  ":"  -f7   passwd 
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
[root@jindada ~]# cut  -d  ":"  -f7   passwd  | sort  
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/shutdown
[root@jindada ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq 
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
[root@jindada ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c
      1 /bin/bash
      1 /bin/sync
      1 /sbin/halt
     14 /sbin/nologin
      1 /sbin/shutdown
[root@jindada ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -n
      1 /bin/bash
      1 /bin/sync
      1 /sbin/halt
      1 /sbin/shutdown
     14 /sbin/nologin
[root@jindada ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -rn
     14 /sbin/nologin
      1 /sbin/shutdown
      1 /sbin/halt
      1 /bin/sync
      1 /bin/bash
[root@jindada ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash
[root@jindada ~]# cut  -c 6  test.txt 
x
[root@jindada ~]# cut  -c 6  passwd 
x
:
n
:
4
x
o
x
x
t
#取出不同的字符 
[root@jindada ~]# cut  -c 6,8  test.txt 
x0
#取出连续的字符  
[root@jindada ~]# cut  -c 1-4  test.txt 
root
#取出系统eth0的IP地址
[root@jindada ~]# yum install -y net-tools
[root@jindada ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:eb:ea:8d  txqueuelen 1000  (Ethernet)
        RX packets 1634  bytes 464970 (454.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1033  bytes 114568 (111.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@jindada ~]# ifconfig  eth0 | head  -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@jindada ~]# ifconfig  eth0 | head  -2 | tail  -1 
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@jindada ~]# ifconfig  eth0 | head  -2 | tail  -1  | cut  -d " "  -f10
10.0.0.100
[root@jindada ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@jindada ~]# ip a s eth0  | head  -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@jindada ~]# ip a s eth0  | head  -3 | tail  -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@jindada ~]# ip a s eth0  | head  -3 | tail  -1 | cut -c 10-19
10.0.0.100
[root@jindada ~]# ip a s eth0  | head  -3 | tail  -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@jindada ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6
10.0.0.100/24
[root@jindada ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6 | cut -d "/"  -f1
10.0.0.100
四、tr #替换 删除 sed的小弟 只能单对单的替换
选项:
 -d           #删除指定的字符
	
语法:
tr old new < file
<	          	#标准输入重定向 
[root@jindada ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash
[root@jindada ~]# tr  "0"  "9"  < test.txt 
root:x:9:9:root:/root:/bin/bash
[root@jindada ~]# tr  -d  "o"  <  test.txt 
rt:x:0:0:rt:/rt:/bin/bash
[root@jindada ~]# 
[root@jindada ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@jindada ~]# ip a s eth0 | head -3 | tail -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@jindada ~]# ip a s eth0 | head -3 | tail -1 | tr  ‘/‘  ‘ ‘
    inet 10.0.0.100 24 brd 10.0.0.255 scope global noprefixroute eth0
[root@jindada ~]# ip a s eth0 | head -3 | tail -1 | tr  ‘/‘  ‘ ‘ | cut  -d " "  -f6
10.0.0.100
五、wc #统计 行数 字节数 列数 行的长度
选项:
	-l	            	#统计行数 
	
	-w	            	#统计列数,默认以空白字符为分隔符 
	
	-c	            	#统计字节数 
	
	-L	            	#统计文件中最长的行的长度
	
	
[root@jindada ~]# wc  passwd 
 18  26 798 passwd
[root@jindada ~]# wc -l  passwd 
18 passwd
[root@jindada ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@jindada ~]# wc  /etc/hosts
  2  10 158 /etc/hosts
[root@jindada ~]# wc -w  /etc/hosts
10 /etc/hosts
[root@jindada ~]# ll passwd 
-rw-r--r--. 1 root root 798 Jul 13 16:49 passwd
[root@jindada ~]# ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts
[root@jindada ~]# wc -c  /etc/hosts
158 /etc/hosts
[root@jindada ~]# wc -c  passwd 
798 passwd
[root@jindada ~]# 
[root@jindada ~]# wc -L  passwd
68 passwd
[root@jindada ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@jindada ~]# wc -L  /etc/hosts
78 /etc/hosts
[root@jindada ~]# name=ewuighrtuighwiorteugh
[root@jindada ~]# echo $name
ewuighrtuighwiorteugh
[root@jindada ~]# echo $name | wc -L
21
原文:https://www.cnblogs.com/jhno1/p/13295600.html