grep使用集合
Posted sky-k
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep使用集合相关的知识,希望对你有一定的参考价值。
一、grep使用
(一)、选项
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
(二)、元字符
grep //使用基本元字符集
^ $ . * [ ] [^] < > ( ) { } + |
egrep(或grep -E): //使用扩展基本元字符集
? + { } | ( ) //注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
w //所有字母与数字,称为字符[a-zA-Z0-9] ‘l[a-zA-Z0-9]*ve‘ ‘lw*ve‘ W //所有字母与数字之外的字符,称为非字符 ‘love[^a-zA-Z0-9]+‘ ‘loveW+‘ //词边界 ‘<love>‘ ‘love‘
(三)、命令格式
grep [选项] PATTERN filename filename.... #grep ‘Tom‘ /etc/passwd #grep ‘bash shell‘ /etc/test //找到: grep返回的退出状态为0 //没找到: grep返回的退出状态为1 //找不到指定的文件: grep返回的退出状态为2
管道格式
grep 程序的输入可以来自标准输入或者管道,而不仅仅是文件,例如:
#grep ‘tom‘ #ps aux | grep ‘sshd‘ #ll | grep ‘^d‘ #grep ‘alice‘ /etc/passwd /etc/shadow /etc/group
二、示例
grep -E 或 egrep # egrep ‘NW‘ datafile # egrep ‘NW‘ d* # egrep ‘4$‘ datafile # egrep ‘TB Savege‘ datafile # egrep ‘5..‘ datafile # egrep ‘^[we]‘ datafile # egrep ‘[^0-9]‘ datafile # egrep ‘[A-Z][A-Z] [A-Z]‘ datafile # egrep ‘ss* ‘ datafile # egrep ‘[a-z]{9}‘ datafile # egrep ‘<north‘ datafile # egrep ‘<north>‘ datafile # egrep ‘<[a-r].*n>‘ datafile # egrep ‘^nw*W‘ datafile # egrep ‘north‘ datafile # egrep ‘NW|EA‘ datafile # egrep ‘3+‘ datafile # egrep ‘2.?[0-9]‘ datafile # egrep ‘(no)+‘ datafile # egrep ‘S(h|u)‘ datafile # egrep ‘Sh|u‘ datafile
三、实战
# egrep ‘ifcfg‘ /etc/* //文件 # egrep -R ‘ifcfg‘ /etc //目录 # egrep ‘root‘ /etc/passwd /etc/shadow /etc/hosts /etc/passwd:root:x:0:0:root:/root:/bin/bash /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin /etc/shadow:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7::: # egrep -l ‘root‘ /etc/passwd /etc/shadow /etc/hosts /etc/passwd /etc/shadow # egrep -n ‘root‘ /etc/passwd /etc/shadow /etc/hosts /etc/passwd:1:root:x:0:0:root:/root:/bin/bash /etc/passwd:10:operator:x:11:0:operator:/root:/sbin/nologin /etc/shadow:1:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7::: # egrep ‘^IPADDR‘ /etc/sysconfig/network-scripts/ifcfg-br0 IPADDR="10.18.43.100" # egrep ‘^IPADDR‘ /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}‘ 10.18.43.100 # egrep ‘^IPADDR‘ /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o ‘([0-9]{1,3}.){3}[0-9]{1,3}‘ 10.18.43.100 # grep --help |grep ‘-R‘ -R, --dereference-recursive # grep --help |egrep -A5 ‘-R‘ -R, --dereference-recursive likewise, but follow all symlinks --include=FILE_PATTERN search only files that match FILE_PATTERN --exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN
以上是关于grep使用集合的主要内容,如果未能解决你的问题,请参考以下文章
[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段