找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 0
打印 上一主题 下一主题
收起左侧

linux正则表达式

[复制链接]
跳转到指定楼层
楼主
ID:107189 发表于 2016-3-5 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linux正则表达式 grep egrep用法 shell命令执行的相应顺序&& 令1 && 命令2 如果这个命令1执行成功& &那么执行这个命2

  mv myfile myfile2 && echo "if you are seeing this then mv was success!"

  || 如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令(命令2)

  mv myfile myfile2 && echo "if you are seeing this then mv was success! "

  从一个审计文件中抽取第1个和第2个域,并将其输出到一个临时文件中,如果这一操作未成功,我希望能够收到一个相应邮件:

  awk '{print$1,$2}' test3 >test2 || echo "sorry the extraction didn't work " | mail root

  (命令1;命令2;. . .)如果使用{ }来代替(),那么相应的命令将在子s h e l l而不是当前s h e l l中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子s h e l l中执行,否则在当前s h e l l执行。

  例子:

  如果s o r t命令执行成功了,可以先将输出文件备份,然后再打印

  test.sorted && (cp test.sorted test.sorted_bak ;lp test.sorted)

  经常使用的正则表达式举例^ 行首

  $ 行尾

  ^ [ t h e ] 以t h e开头行

  [ S s ] i g n a [ l L ] 匹配单词s i g n a l、s i g n a L、S i g n a l、S i g n a L

  [Ss]igna[lL]". 同上,但加一句点

  [ m a y M A Y ] 包含m a y大写或小写字母的行

  ^ U S E R $ 只包含U S E R的行

  [tty]$ 以t t y结尾的行

  " . 带句点的行

  ^ d . . x . . x . . x 对用户、用户组及其他用户组成员有可执行权限的目录

  ^ [ ^ l ] 排除关联目录的目录列表

  ^[^d] ls –l | grep ^[^d] 只显示非文件夹的文件

  [ . * 0 ] 0之前或之后加任意字符

  [ 0 0 0 * ] 0 0 0或更多个

  [ iI] 大写或小写I

  [ i I ] [ n N ] 大写或小写i或n

  [ ^ $ ] 空行

  [ ^ . * $ ] 匹配行中任意字符串

  ^ . . . . . . $ 包括6个字符的行

  [a- zA-Z] 任意单字符

  [ a - z ] [ a - z ] * 至少一个小写字母

  [ ^ 0 - 9 " $ ] 非数字或美元标识

  [ ^ 0 - 0 A - Z a - z ] 非数字或字母

  [ 1 2 3 ] 1到3中一个数字

  [ D d ] e v i c e 单词d e v i c e或D e v i c e

  D e . . c e 前两个字母为D e,后跟两个任意字符,最后为c e

  " ^ q 以^ q开始行

  ^ . $ 仅有一个字符的行

  ^".[0-9][0-9] 以一个句点和两个数字开始的行

  ' " D e v i c e " ' 单词d e v i c e

  D e [ V v ] i c e " . 单词D e v i c e或d e v i c e

  [ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 4 " } 对日期格式d d - m m - y y y y

  [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } I P地址格式

  [ ^ . * $ ] 匹配任意行

  [A-Za-z]* 匹配所有单词

  常用的g r e p选项-c 只输出匹配行的计数。

  -i 不区分大小写(只适用于单字符)。

  -h 查询多文件时不显示文件名。

  -l 查询多文件时只输出包含匹配字符的文件名。

  -n 显示匹配行及行号。

  -s 不显示不存在或无匹配文本的错误信息。

  -v 显示不包含匹配文本的所有行。

  例子

  grep -v "Sort" tab2 显示不包含匹配文本的所有行

  grep -n "Sort" tab2 显示匹配行及行号

  grep -c "Sort" tab2 只输出匹配行的计数

  精确匹配: grep "01">" tab2

  grep -in "code" tab2 忽略大小写

  多次过滤

  grep -in "code" tab2 | grep "02"

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

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

  grep –E ‘219|216’ tab2

  g r e p允许使用国际字符模式匹配或匹配模式的类名形式。类 等价的正则表达式

  [ [ : u p p e r : ] ] [ A - Z ]

  [ [ : a l n u m : ] ] [ 0 - 9 a - zA-Z]

  [ [ : l o w e r : ] ] [ a - z ]

  [ [ : s p a c e : ] ] 空格或t a b键

  [ [ : d i g i t : ] ] [ 0 - 9 ]

  [ [ : a l p h a : ] ] [ a - z A - Z ]

  大多数系统管理员称 / d e v / n u l l为比特池, 可以将之看成一个无底洞,有进没有出,永远也不会填满。

  要查看D N S服务器是否正在运行(通常称为n a m e d),方法如下

  ps -ef | grep "name"|grep -v "grep"

  e g r e pe g r e p接受所有的正则表达式,一个显著特性是可以以一个文件作为保存的字符串,然后将之传给e g r e p作为参数,为此使用- f开关。

  egrep -f par2 tab2 par2是文件,里面包括各种匹配的具体格式

  如果要查询存储代码3 2 L或2 C C,可以使用(|)符号,意即“|”符号两边之一或全部。

  egrep '(Code|Sort)' tab2


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表