Linux Shell 012-文本行过滤工具grep

Linux Shell 012-文本行过滤工具grep

本节关键字:Linux、Bash Shell、文本行过滤
相关指令:grep

grep介绍

grep是文本行过滤工具,用于根据关键字进行行过滤。

grep语法

基本语法: grep [选项] ‘关键字’ 文件名

grep常用选项

选项 说明
-i 不区分大小写
-v 查找不包含指定内容的行,反向选择
-w 按单词搜索
-o 打印匹配关键字
-c 统计匹配到的行数
-n 显示行号
-r 逐层遍历目录查找
-A 显示匹配行及后面多少行
-B 显示匹配行及前面多少行
-C 显示匹配行前后多少行
-l 只列出匹配的文件名
-L 列出不匹配的文件名
-e 使用正则匹配
-E 使用扩展正则匹配
^key 以关键字开头
key$ 以关键字结尾
^$ 匹配空行
–color=auto 可以将找到的关键词部分加上颜色的显示

grep颜色显示

# 临时设置,只针对当前终端和当前用户生效
$ alias grep='grep --color=auto'

# 永久设置:
# 1)全局(针对所有用户生效)
$ vim /etc/bashrc
alias grep='grep --color=auto'
source /etc/bashrc

# 2)局部(针对具体的某个用户)
$ vim ~/.bashrc
alias grep='grep --color=auto'
source ~/.bashrc

grep实例

命令语句 说明
$ grep -i root passwd 忽略大小写匹配包含root的行
$ grep -w ftp passwd 精确匹配ftp单词
$ grep -w hello passwd 精确匹配hello单词;自己添加包含hello的行到文件
$ grep -wo ftp passwd 打印匹配到的关键字ftp
$ grep -n root passwd 打印匹配到root关键字的行号
$ grep -ni root passwd 忽略大小写匹配统计包含关键字root的行
$ grep -nic root passwd 忽略大小写匹配统计包含关键字root的行数
$ grep -i ^root passwd 忽略大小写匹配以root开头的行
$ grep bash$ passwd 匹配以bash结尾的行
$ grep -n ^$ passwd 匹配空行并打印行号
$ grep ^# /etc/vsftpd/vsftpd.conf 匹配以#号开头的行
$ grep -v ^# /etc/vsftpd/vsftpd.conf 匹配不以#号开头的行
$ grep -A 5 mail passwd 匹配包含mail关键字及其后5行
$ grep -B 5 mail passwd 匹配包含mail关键字及其前5行
$ grep -C 5 mail passwd 匹配包含mail关键字及其前后5行

查看系统运行级别

$ grep -v '^#' /etc/inittab | cut -d: -f2
$ grep '^id' /etc/inittab |cut -d: -f2
$ grep "initdefault:$" /etc/inittab | cut -c4
$ grep -v ^# /etc/inittab | cut -c4
$ grep 'id:' /etc/inittab | cut -d: -f2

你可能感兴趣的:(Linux,Shell脚本,linux,chrome,运维,bash,centos)