Appearance
Grep概述
希望通过linux的命令在文件中或其他命令结果中,统计(计算次数).
比如:统计/var/log/secure文件中Failed password出现的次数. 拆分
- 第一个里程碑:过滤出包含Failed password的行:grep.
- 第二个里程碑:命令的结果通过管道传递给其他命令:管道.
- 第三个里程碑:通过命令统计次数:wc -l.
- 在文件或命令的结果中,找出你要的或不要的(排除)的内容
- grep命令,Linux三剑客之一,排第三,擅长过滤
Grep 常见参数
| grep命令选项 | 说明 |
|---|---|
| -i(忽略) | ignorecase 过滤的时候不区分大小写 |
| -n | line number过滤出内容并显示行号 |
| -r | 递归过滤 |
| -e | 用于指定一个或多个匹配模式。它允许你在查找文本时使用多个不同的正则表达式模式 |
| -v | 对行进行取反 |
| -E(egrep) | 扩展的正则表达式 |
| -w | 用于匹配整个单词 |
| -c | 统计字符串的次数 |
| -o | 显示匹配过程 |
案例1使用grep过滤需要找的内容
shell
[root@kylin-xlj ~ 15:43]# grep 'port' /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
# WARNING: 'UsePAM no' is not supported in kylin and may cause several
# national algorithm standards supports案例2使用grep -i 过滤内容且不区分大小写
shell
[root@kylin-xlj ~ 15:43]# grep -i 'port' /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
Port 22399
# WARNING: 'UsePAM no' is not supported in kylin and may cause several
#GatewayPorts no
GatewayPorts no
# national algorithm standards supports案例3使用grep -n 过滤时候显示内容的行号,也可以搭配 -i 选项
shell
[root@kylin-xlj ~ 15:53]# grep -in 'port' /etc/ssh/sshd_config
13:# If you want to change the port on a SELinux system, you have to tell
15:# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
17:Port 22399
95:# WARNING: 'UsePAM no' is not supported in kylin and may cause several
101:#GatewayPorts no
160:GatewayPorts no
166:# national algorithm standards supports- 在 Linux 系统中为
grep设置别名并使其在执行时携带颜色参数的方法: - alias grep='grep --color=auto' 临时
'grep --color=auto'是新的命令形式,其中--color=auto会使grep在输出时根据匹配的内容自动添加颜色,使其更易于查看。- 别名添加到 shell 配置文件(永久有效):
echo "alias grep='grep --color=auto'" >> ~/.bashrc:使用 echo 命令将别名的定义添加到相应的配置文件(.bashrc 或 .zshrc)的末尾。
source ~/.bashrc 或 source ~/.zshrc:重新加载配置文件,使新添加的别名立即生效。