本节关键字:Linux、Bash Shell、文本行过滤
相关指令:grep
grep是文本行过滤工具,用于根据关键字进行行过滤。
基本语法: grep [选项] ‘关键字’ 文件名
选项 | 说明 |
---|---|
-i | 不区分大小写 |
-v | 查找不包含指定内容的行,反向选择 |
-w | 按单词搜索 |
-o | 打印匹配关键字 |
-c | 统计匹配到的行数 |
-n | 显示行号 |
-r | 逐层遍历目录查找 |
-A | 显示匹配行及后面多少行 |
-B | 显示匹配行及前面多少行 |
-C | 显示匹配行前后多少行 |
-l | 只列出匹配的文件名 |
-L | 列出不匹配的文件名 |
-e | 使用正则匹配 |
-E | 使用扩展正则匹配 |
^key | 以关键字开头 |
key$ | 以关键字结尾 |
^$ | 匹配空行 |
–color=auto | 可以将找到的关键词部分加上颜色的显示 |
# 临时设置,只针对当前终端和当前用户生效
$ 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 -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