shell正则
2016-04-19 16:34
363 查看
正则表达式
正则表达式 由 元字符 、普通字符 、元字符 和普通字符 组成
语法格式
grep [选项] '正则表达式' 文件列表
命令 | grep [选项] '正则表达式'
-------------------------------------------------------
ps aux | grep sshd
grep root /etc/passwd
选项?
--color 标红显示匹配字串
-q 静默,无任何输出,一般用于检测
-c 统计匹配的行数
-n 显示出匹配结果所在的行号
-v 条件取反
-i 忽略字母大小写
-E 使匹配条件转义(或者用egrep)
元字符 有哪些?
^ 匹配行首
$ 匹配行尾
. 任意单个字符(不包括换号符号 \n)
----------------------------------------------------------------------
定义前边的正则表达式出现的次数
\+ 前边的正则表达式出现1次到多次
\? 前边的正则表达式出现0次到1次
* 前边的正则表达式出现0次到多次
----------------------------------------------------------------------
\(\) 把正则表达式做为整体匹配
----------------------------------------------------------------------
\{\} 限定前边正则表达式出现的次数
{N}前边正则表达式必须出现N次
{N,}前边正则表达式至少出现N次
{N,M}前边正则表达式至少出现N次 最多出现M次
----------------------------------------------------------------------
[ ] 范围内匹配,范围内任意一个字符 (次数是一次)
[a-z] 匹配所有小写字母
[A-Z] 匹配所有大写字母
[a-Z]
[a-zA-Z] 匹配所有大小写字母
[279]
[0-9] 匹配所有数字
[a-Z0-9] 匹配所有大小写字母和数字
^[ ] 以范围内的开头
^[a-z]
^[0-9]
^[169]
^[afw]
[ ]$ 以范围内的结束
^[a-c][0-9]$
[^ ] 范围内取反
^[^a-Z0-9] 匹配以符号开头的行
------------------------------------------------------------
\| 或
grep --color '^root\|^daemon' /etc/passwd 列出以root或者以daemon开头的行
grep --color '^[rd]' /etc/passwd 列出以r或者以d开头的行
----------------------------------------------------------------------
\< 单词的开头
\> 单词的结束
head -5 /etc/httpd/conf/httpd.conf | grep --color '\<c' 列出以带c开头的单词的行
head -5 /etc/httpd/conf/httpd.conf | grep --color 's\>' 列出以带s结尾的单词的行
\b 单词边界
grep --color '\btom' d.txt 单词左边包含tom的行
grep --color 'tom\b' d.txt 单词右边包含tom的行
grep --color '\btom\b' d.txt 单词只包含tom的行 边界无其他字符
---------------------------------------------------------------------
XX:XX:XX:XX:XX:XX
grep -E --color '([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}' mac.txt
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C DEF
grep --color '\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}' mac.txt
---------------------------------------------------------------------
ip的正则表达式(括号的大小写很严格,点需要转义)
grep -E '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$'
正则表达式 由 元字符 、普通字符 、元字符 和普通字符 组成
语法格式
grep [选项] '正则表达式' 文件列表
命令 | grep [选项] '正则表达式'
-------------------------------------------------------
ps aux | grep sshd
grep root /etc/passwd
选项?
--color 标红显示匹配字串
-q 静默,无任何输出,一般用于检测
-c 统计匹配的行数
-n 显示出匹配结果所在的行号
-v 条件取反
-i 忽略字母大小写
-E 使匹配条件转义(或者用egrep)
元字符 有哪些?
^ 匹配行首
$ 匹配行尾
. 任意单个字符(不包括换号符号 \n)
----------------------------------------------------------------------
定义前边的正则表达式出现的次数
\+ 前边的正则表达式出现1次到多次
\? 前边的正则表达式出现0次到1次
* 前边的正则表达式出现0次到多次
----------------------------------------------------------------------
\(\) 把正则表达式做为整体匹配
----------------------------------------------------------------------
\{\} 限定前边正则表达式出现的次数
{N}前边正则表达式必须出现N次
{N,}前边正则表达式至少出现N次
{N,M}前边正则表达式至少出现N次 最多出现M次
----------------------------------------------------------------------
[ ] 范围内匹配,范围内任意一个字符 (次数是一次)
[a-z] 匹配所有小写字母
[A-Z] 匹配所有大写字母
[a-Z]
[a-zA-Z] 匹配所有大小写字母
[279]
[0-9] 匹配所有数字
[a-Z0-9] 匹配所有大小写字母和数字
^[ ] 以范围内的开头
^[a-z]
^[0-9]
^[169]
^[afw]
[ ]$ 以范围内的结束
^[a-c][0-9]$
[^ ] 范围内取反
^[^a-Z0-9] 匹配以符号开头的行
------------------------------------------------------------
\| 或
grep --color '^root\|^daemon' /etc/passwd 列出以root或者以daemon开头的行
grep --color '^[rd]' /etc/passwd 列出以r或者以d开头的行
----------------------------------------------------------------------
\< 单词的开头
\> 单词的结束
head -5 /etc/httpd/conf/httpd.conf | grep --color '\<c' 列出以带c开头的单词的行
head -5 /etc/httpd/conf/httpd.conf | grep --color 's\>' 列出以带s结尾的单词的行
\b 单词边界
grep --color '\btom' d.txt 单词左边包含tom的行
grep --color 'tom\b' d.txt 单词右边包含tom的行
grep --color '\btom\b' d.txt 单词只包含tom的行 边界无其他字符
---------------------------------------------------------------------
XX:XX:XX:XX:XX:XX
grep -E --color '([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}' mac.txt
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C DEF
grep --color '\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}' mac.txt
---------------------------------------------------------------------
ip的正则表达式(括号的大小写很严格,点需要转义)
grep -E '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$'
相关文章推荐
- linux shell 的here document 用法 (cat << EOF)
- Linux Shell 中的反引号,单引号,双引号
- Shell 脚本的小实战
- 使用Shell脚本查询服务器硬件信息
- linux load 监控,负载监控 ,shell 监控cpu,memory,load average,记录到log
- bash操作小结
- 已解决:登录Linux的 bash4.2$ 问题
- Android_adb shell am/pm使用
- shell 怎么删除文件的最后一行
- ShellExecute
- Shell : debug
- Windows下使用wxPython的pycrust交互shell方法。运行pywrap命令
- Linux Shell脚本之更新hosts文件以便于访问谷歌服务
- bash shell 的知识点--参考书
- linux 命令行和shell 脚本编程--了解shell
- Shell: test
- hbase经常使用的shell命令样例
- linux集群运维工具:clustershell和pssh
- Shell编程详解
- shell脚本基础知识