grep

grep 是linux 中最常用的“文本处理工具之一” 与sed awk 合称为linux中的三剑客!

grep 就像你在windows中打开txt文件,使用快捷键“Ctrl+F” 在文本中查找某个字符串一样,可以把grep 理解为字符查找工具

grep 的全程为Global search Regular Expression  and Print out the line 为全局搜索的意思

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-i:在搜索的时候忽略大小写
[root@localhost ~]# cat /etc/passwd|grep -i "SSH"
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 
-n: 显示结果所在行号
[root@localhost ~]# cat /etc/passwd|grep -ni "SSH"
17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 
-c:统计匹配到的行数
[root@localhost ~]# cat /etc/passwd|grep  "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cat /etc/passwd|grep -c "root"
2
 
-w:匹配单个单词,如果字符串中包含这个单词,则不匹配
[root@localhost ~]# cat /etc/passwd.bak|grep -w "root"
root:x:0:0:root:/root:/bin/bash
rootroo:x:0:0:root:/root:/bin/bash #不会显示rootroo的
 
-e:实现多个选项的匹配。逻辑或or的关系
==egrep
==grep -E
[root@localhost ~]# cat /etc/passwd.bak|egrep -w "root|sshd"
root:x:0:0:root:/root:/bin/bash
rootroo:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 
-q: 静默模式,不输出任何信息 判断:echo $?
[root@localhost ~]# cat /etc/passwd.bak|grep -q "root"
 
-v:输出不带关键字的行(反向查询,反向匹配)
[root@localhost ~]# cat /etc/passwd.bak|grep -v "root"
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
chrony:x:998:996::/var/lib/chrony:/sbin/nologin

 sed

流编辑器,主要用来过滤和替换文本内容

工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式。然后再将下一行读入模式空间进行处理输出,以此类推,直至最后一行。

用法:

sed [选项] ‘命令’ file_name

选项:

1
2
选项                      描述
-n                        不打印模式空间
12-20 05:43