shell学习笔记 (8.3)

8.2.7   模式出现机率


抽取包含数字4至少重复出现两次的所有行


grep '4\{2,\}' data.f


上述语法指明数字4至少重复出现两次


8.2.8   使用grep匹配“与”或者“或”模式


g r e p命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为 2 1 9或2 1 6


grep -E '219|216' data.f


8.2.9   空行


结合使用^和$可查询空行。使用- n参数显示实际行数


grep '^$' myfile


8.2.10   匹配特殊字符


查询有特殊含义的字符,诸如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。


grep '\"' myfile


8.2.11   查询格式化文件名


使用正则表达式可匹配任意文件名。


grep '[^a-z]\{1,6/}\.[^A-Z]\{1,2/}' myfile




8.2.12   查询IP地址


查询D N S服务是日常工作之一,这意味着要维护覆盖不同网络的大量 I P地址。有时地址
I P会超过2 0 0 0个。如果要查看n n n . n n n网络地址,但是却忘了第二部分中的其余部分,只知有
两个句点,例如n n n . n n . .。要抽取其中所有nnn.nnn IP地址,使用[ 0 - 9 ] \ { 3 \ } \ . [ 0 - 0 \ { 3 \ } \。含义是
任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。


通常地址用 grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' INPUT_FILE  但是无法确定在255的范围内。 

8.3   类名


g r e p允许使用国际字符模式匹配或匹配模式的类名形式。


8.4   系统grep命令

8.4.1   目录

8.4.2  passwd文件

8.4.3  使用ps命令

使用带有ps x命令的g r e p可查询系统上运行的进程。ps x命令意为显示系统上运行的所有进程列表。

8.4.4   对一个字符串使用grep

echo $str |grep "jason"

8.5   egrep

e g r e p代表e x p r e s s i o n或extended grep,适情况而定。e g r e p接受所有的正则表达式,e g r e p的一个显著特性是可以以一个文件作为保存的字符串,然后将之传给 e g r e p作为参数,为此使用- f开关。如果创建一个名为g r e p s t r i n g s的文件,并输入4 8 4和4 7:

pg grepstrings

484

egrep -f grepstrings data.f

上述脚本匹配d a t a . f中包含4 8 4或4 7的所有记录。当匹配大量模式时, - f开关很有用,而在一个命令行中敲入这些模式显然极为繁琐。如果要查询存储代码3 2 L或2 C C,可以使用(|)符号,意即“|”符号两边之一或全部

 

可以使用任意多竖线符“ |” ,例如要查看在系统中是否有帐号 l o u i s e、m a t t y或pauline ,
使用w h o命令并管道输出至e g r e p。

还可以使用^符号排除字符串。如果要查看系统上的用户,但不包括 m a t t y和p a u l i n e,  

who |egrep -v '^(matty|pauline)'

如果要查询一个文件列表,包括 s h u t d o w n、s h u t d o w n s、r e b o o t和r e b o o t s,使用e g r e p可容易地实现。

egrep '(shutdown |reboot)' (s)?' *

 

 

你可能感兴趣的:(shell,职场,grep,休闲)