@字符文本处理命令之排序-去重-去列-替换-统计-搜索

1. sort命令


#排序 将不相同的行进行排序在一起     默认是根据第一列进行排序 默认是以空白字符为分割符 默认以字母进行排序


选项:

-k #指定哪一列为分隔符  

-n #以数值大小的方式进行排序

-r #倒叙排序  

-t #指定分割符  

cat>sort.txt<<EOF
b   5
c   3
a   11
f   2
d   9
EOF



[root@qls ~]# cat sort.txt
b   5
c   3
a   11
f   2
d   9
[root@qls ~]# sort sort.txt
a   11
b   5
c   3
d   9
f   2

[root@qls ~]# sort -k2   sort.txt
a   11
f   2
c   3
b   5
d   9
[root@qls ~]# sort -nk2   sort.txt
f   2
c   3
b   5
d   9
a   11

[root@qls ~]# sort -rnk2 sort.txt
a   11
d   9
b   5
c   3
f   2


[root@qls ~]# cp /etc/passwd ./
[root@qls ~]# 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@qls ~]# 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@qls ~]# cat file.txt
123
abc
123
edf
456
123
abc

[root@qls ~]# sort file.txt
123
123
123
456
abc
abc
edf

2. uniq命令


#去重   去除重复的行   只能去除相同相邻的行     统计   将重复的行的次数统计出来   跟sort结合使用  


| #管道   将前面命令的执行结果交给后面的命令继续执行   操作的是数据  


选项:

-c #统计重复的行的次数

[root@qls ~]# sort file.txt
123
123
123
456
abc
abc
edf

[root@qls ~]# sort file.txt | uniq  
123
456
abc
edf

[root@qls ~]# sort file.txt | uniq -c
     3 123
     1 456
     2 abc
     1 edf


[root@qls ~]# sort file.txt | uniq -c | sort  
     1 456
     1 edf
     2 abc
     3 123
[root@qls ~]# sort file.txt | uniq -c | sort -n
     1 456
     1 edf
     2 abc
     3 123
[root@qls ~]# sort file.txt | uniq -c | sort -rn
     3 123
     2 abc
     1 edf
     1 456

3. cut命令


#取列     awk命令的小弟   默认的分隔符为tab键

选项:

-d #指定分隔符

-f #取出指定的列
       
       -c #取出指定的字符 按照行进行处理的  

[root@qls ~]# echo "root:x:0:0:root:/root:/bin/bash" >test.txt
[root@qls ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash

#取出第七列
[root@qls ~]# cut -d ":" -f7   test.txt
/bin/bash

#取出第一列和第七列
[root@qls ~]# cut -d ":" -f1,7   test.txt
root:/bin/bash

#取出第五列到第七列
[root@qls ~]# cut -d ":" -f5-7   test.txt
root:/root:/bin/bash

[root@qls ~]# 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@qls ~]# 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@qls ~]# cut -d ":" -f7   passwd | sort   | uniq
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
[root@qls ~]# cut -d ":" -f7   passwd | sort   | uniq -c
     1 /bin/bash
     1 /bin/sync
     1 /sbin/halt
    14 /sbin/nologin
     1 /sbin/shutdown
[root@qls ~]# 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@qls ~]# 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@qls ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
[root@qls ~]# cut -c 6 test.txt
x
[root@qls ~]# cut -c 6 passwd
x
:
n
:
4
x
o
x
x
t
#取出不同的字符
[root@qls ~]# cut -c 6,8 test.txt
x0

#取出连续的字符  
[root@qls ~]# cut -c 1-4 test.txt
root


#取出系统eth0的IP地址

[root@qls ~]# yum install -y net-tools #安装ifconfig命令

[root@qls ~]# 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@qls ~]# 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@qls ~]# ifconfig eth0 | head -2 | tail -1
      inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
[root@qls ~]# ifconfig eth0 | head -2 | tail -1 | cut -d " " -f10
10.0.0.100



[root@qls ~]# 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@qls ~]# 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@qls ~]# ip a s eth0 | head -3 | tail -1
  inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | cut -c 10-19
10.0.0.100



[root@qls ~]# ip a s eth0 | head -3 | tail -1
  inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | cut -d " " -f6
10.0.0.100/24
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | cut -d " " -f6 | cut -d "/" -f1
10.0.0.100

4. tr命令



#替换 删除   sed的小弟     只能单对单的替换

选项:

-d #删除指定的字符

语法:

tr   old   new   <   file  


< #标准输入重定向


[root@qls ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash

[root@qls ~]# tr "0" "9" < test.txt
root:x:9:9:root:/root:/bin/bash

[root@qls ~]# tr -d "o" < test.txt
rt:x:0:0:rt:/rt:/bin/bash
[root@qls ~]#


[root@qls ~]# 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@qls ~]# ip a s eth0 | head -3 | tail -1
  inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# 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@qls ~]# ip a s eth0 | head -3 | tail -1 | tr '/' ' ' | cut -d " " -f6
10.0.0.100

5. wc命令


#统计   行数 字节数 列数   行的长度  

选项:

-l #统计行数

-w #统计列数,默认以空白字符为分隔符

-c #统计字节数

-L #统计文件中最长的行的长度


[root@qls ~]# wc passwd
18  26 798 passwd
[root@qls ~]# wc -l passwd
18 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc /etc/hosts
 2  10 158 /etc/hosts
[root@qls ~]# wc -w /etc/hosts
10 /etc/hosts
[root@qls ~]# ll passwd
-rw-r--r--. 1 root root 798 Jul 13 16:49 passwd
[root@qls ~]# ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts
[root@qls ~]# wc -c /etc/hosts
158 /etc/hosts
[root@qls ~]# wc -c passwd
798 passwd
[root@qls ~]#


[root@qls ~]# wc -L passwd
68 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc -L /etc/hosts
78 /etc/hosts


[root@qls ~]# name=ewuighrtuighwiorteugh
[root@qls ~]# echo $name
ewuighrtuighwiorteugh
[root@qls ~]# echo $name | wc -L
21

6. grep命令


#过滤   给过滤出来的内容加上颜色   按照行进行处理的  


[root@qls ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'

#选项:

-n #显示出过滤出来的所在文件的行号

-v #排除,取反

-c #统计过滤出来的内容的总行数

-i #过滤的时候忽略大小写  

-o #只显示你要过滤的内容
   
   -w #精确匹配 只过滤你要过滤的单词,而不是包含这个单词的字符串  
   
   -r #递归过滤 针对目录进行操作  

-A #显示出你要过滤的内容及向下多少行的内容

-B #显示出你要过滤的内容及向上多少行的内容

-C #显示出你要过滤的内容向上向下各多少行

^ #以什么开头

$ #以什么为结尾

| # 或者   扩展正则  

-E #支持扩展正则   ==== egrep

. #任意一个字符 排除换行符  

* #前面的字符出现0次或者0次以上  

.* #所有  

[root@qls ~]# grep 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep -n 'root' passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep -v 'root' passwd
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
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@qls ~]# grep 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep -c 'root' passwd
2


[root@qls ~]# echo "ROOT" >> passwd
[root@qls ~]# grep "root" passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep -i "root" passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ROOT


[root@qls ~]# grep -o 'root' passwd
root
root
root
root


[root@qls ~]# echo "roottttt" >>passwd
[root@qls ~]# grep 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep -w 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# 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 3778 bytes 648285 (633.0 KiB)
      RX errors 0 dropped 0 overruns 0 frame 0
      TX packets 2329 bytes 260396 (254.2 KiB)
      TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@qls ~]# ifconfig eth0 | grep inet
      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>
[root@qls ~]# ifconfig eth0 | grep -w inet
      inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
[root@qls ~]#

#针对一个目录进行操作

[root@qls ~]# grep -r 'root' ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root


[root@qls ~]# grep -R 'root' ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root


[root@qls ~]# grep -A 4 'sync' passwd
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


[root@qls ~]# grep -B 4 'sync' passwd
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


[root@qls ~]# grep -C 4 'sync' passwd
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


[root@qls ~]# grep 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep '^root' passwd
root:x:0:0:root:/root:/bin/bash
roottttt
[root@qls ~]# grep 't$' passwd
halt:x:7:0:halt:/sbin:/sbin/halt
roottttt
[root@qls ~]# grep 'adm|mail' passwd
[root@qls ~]# grep -E 'adm|mail' passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@qls ~]# egrep 'adm|mail' passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin


#取出文件中的第5行到第15行

[root@qls ~]# head -15 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
[root@qls ~]# head -15 passwd | tail -11
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


[root@qls ~]# grep 'r*' 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
roottttt



[root@qls ~]# grep -n '.*' passwd
1:root:x:0:0:root:/root:/bin/bash
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19:ROOT
20:roottttt
[root@qls ~]#
[root@qls ~]# grep -n '.*' passwd | grep '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep -n '.*' passwd | grep -w '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep -n '.*' passwd | grep -wA 10 '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
[root@qls ~]#


[root@qls ~]# grep -n '.*' passwd   | grep -Ew   '^8|^10'
8:halt:x:7:0:halt:/sbin:/sbin/halt
10:operator:x:11:0:operator:/root:/sbin/nologin

7. 总结


1. sort   #排序   将相同的行排序在一起   指定某一列继续排序   默认以第一列进行排序

选项:

-t #指定分隔符 默认分隔符为空白字符  

-k #指定以哪一列进行排序

-n #以数值大小进行排序

-r #倒叙排序


2. uniq #去重 统计   把相邻相同的行进行去重   统计重复的次数

选项:

-c #统计重复的次数

3.cut #取列    

选项:

-d #指定分隔符 ,m默认分隔符为tab键

-f #取出指定的列,取出不连续的列使用逗号分割,取出连续的列使用短横杠进行分割

-c #取出你指定的字符 取出不连续的列使用逗号分割,取出连续的列使用短横杠进行分割 取出的每一行

4. tr #替换和删除的命令   只能单对单的进行替换

选项:

-d #删除指定的字符

语法:

tr   旧的字符   新的字符   < 文件名

5. wc #统计

选项:

-l #统计行数  

-w #统计列数 默认以空白字符为分隔符

-c #统计字节的大小  

-L #统计文件中最长的行的长度 字符的数量

6. grep #过滤 给过滤出来的内容加上颜色

选项:

-n #给过滤出来的内容显示所在文件的行号

-v #排除,取反

-i #过滤的时候,忽略大小写

-c #统计过滤出来的内容的行数  

-o #只显示过滤出来的内容

-w #精确匹配,之过滤你要过滤的字符串,而不是包含这个字符串的字符串

-r #递归过滤   针对目录进行操作

-E #支持扩展正则使用  

-A #显示过滤出来的内容及向下多少行

-B #显示过滤出来的内容及向上多少行

-C #显示过滤出来的内容向上向下各多少行
       
      ^ #以什么为开头
       
       $ #以什么为结尾
       
      | #或者   扩展正则
       
      . #除换行符以外的任意一个字符
       
      * #匹配前面的字符出现0次或者0次以上
       
      .* #所有 包括空行
       
       
       

 

 

posted @ 2021-03-10 15:22  ଲ一笑奈&何  阅读(56)  评论(0编辑  收藏  举报