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 不打印模式空间 |