正则表达式

字符

代表意义

[:alnum:] 

英文字母大小写字符及数字,即0-9,A-Z,a-z

[:alpha:]

任何英文大小写字符,即A-Z,a-z

[:blank:]

空格键与[tab]键

[:cntrl:]

键盘上面的控制键,即包括CR,LF,Tab,Del

[:digit:]

数字,即0-9

[:graph:]

除空格符(空格键与[tab]键)外的其他所有按键

[:lower:]

小写字符,即a-z

[:print:]

任何可被打印出来的字符

[:punct:]

标点符号,即” “ ? ! ; : # $

[upper:]                 

大写字符,即A-Z

[:space:]

任何会产生空白的字符,包括空格键[Tab] CR等

[:xdigit:]

十六进制的数字类型,因此包括0-9,A-F,a-f的数字与字符

 

 

^word

意义:待查找的字符串(word)在行首。

例子:查找行首为#开始的那一行,并列出行号:grep –n ‘^#’ file.txt

word$

意义:待查找的字符串(word)在行尾。

例子:将行尾为!的那一行打印出来,并列出行号:grep –n ‘!$’ file.txt

 

.

意义:代表一定有一个任意字符的字符。

例子:查找的字符串可以是(eve) (eae) (eee) (ee),但不能仅有(ee),即e与e中间一定仅有一个字符,而空格符也是字符:grep –n ‘e.e’ file.txt

\

意义:转义字符,将特殊符号的特殊意义去除。

例子:查找含有单引号’的那一行:grep –n \’ file.txt

*

意义:重复零个到无穷多个的前一个字符。

例子:找出(es) (ess) (esss)等的字符串,注意,因为*可以是0个,所以es也是符合待查找字符串。另外,因为*为重复“前一个字符RE”的符号,因此,在*之前必须要紧接着一个RE字符:grep –n ‘ess*’ file.txt

 

[list]

意义:从字符集合的RE字符里面找出想要选取的字符。

例子:查找含有(gl)或(gd)的那一行需要特别留意的是,在[]当中代表一个待查找的字符,a[afl]y代表查找的字符串可以是aay,afy,aly即[afl]代表a或f或l的意思:

grep –n ‘g[ld]’ file.txt

[n1-n2]

意义:从字符集合的RE字符里面查找出想要选取的字符范围。

例子:查找含有任意数字的那一行,grep –n ‘[0-9]’ file.txt

[^list]

意义:从字符集合的RE字符里面找出不要的字符串或范围。

例子:查找的字符串可以是(oog) (ood)但不能使(oot),grep –n ‘oo[^t] file.txt

\{n,m\}

意义:连续n到m个的前一个RE字符,若为\{n\}则是连续n个的前一个RE字符,若为\{n,\}则表示连续n个以上的前一个RE字符。

例子:在g与g之间有2个到3个的o存在的字符串grep –n ‘go\{2,3\}g’ file.txt

 

扩展正则表达式,使用grep –E 或 egrep

+

意义:重复一个或一个以上的前一个RE字符

例子:查找(god) (good) (goood)等的字符串。那么o+代表一个以上的o

egrep –n ‘go+d’ file.txt

意义:零个或一个的前一个RE字符

例子:查找(gd) (god)这两个字符串。那个o?代表空的或1个o,

egrep –n ‘go?d’ file.txt

|

意义:用或(or)的方式找出多个字符串

例子:查找gd或good这两个字符串

egrep –n ‘gd|good’ file.txt

( )

意义:找出“组”字符串

例子:查找(glad)或(good)这两个字符串,以为g与d是重复的,所以可以将la与oo列于( )当中,并以|分隔开

egrep –n ‘g(la|oo)d’ file.txt

( )+

意义:多个组重复组的判别

例子:查找AxyzxyzxyzxyzC

egrep ‘A(xyz)+C’ file.txt




二、cut、grep、sort、wc、uniq

1. cut

cut-d ‘分割字符' -f fields

cut -c 字符范围(n),从第n个字符开始

参数:

-d:后面接分割符,与-f一起使用;

-f:依据-d的分割符将一段信息切割成为数据段,用-f取出第几段的意思;

-c:以字符的单位取出固定字符区间。

例子:echo $PATH|cut -d ’:' -f 3,5。以:进行分割,然后取出第三和第五段

2. grep

grep[-acinv] [-A] [-B] [--color=auto] '查找字符串' filename

参数:

-a:将binary文件以text文件的方式查找数据;

-c:计算找到’查找字符串‘的次数;

-i:忽略大小写的不同

-n:顺便输出行号

-v:反向选择,即显示出没有’查找字符串‘内容的那一行

-A:后面可加数字,为after的意思,除了列出该行外,后续的n行也列出来

-B:后面可加数字,为befor的意思,除了列出该行外,前面的n行也列出来

--color=auto:找到的关键字部分会用特殊颜色显示

grep --color=auto wang files,在files文件中查找字符wang

3. sort

sort [-fbMnrtuk] [file  or stdin]

参数:

-f:忽略大小写的差异

-b:忽略最前面的空格符部分

-M:以月份的名字来排序

-n:使用‘纯数字’进行排序(默认是以文字类型来排序的)

-r:反向排序

-u:就是uniq,相同的数据中,仅出现一行代表

-t:分割符,默认是用tab键来分隔

-k:以那个区间来进行排序的意思

例子:files文件中内容

adm:x:3:4:adm:/var/adm

bin:x:1:1:bin

apache:x:48:48

daemon:x:2:2

cat files | sort 默认以文字类型排序

adm:x:3:4:adm:/var/adm

apache:x:48:48

bin:x:1:1:bin

daemon:x:2:2

cat files | sort -t ':' -k 3 以‘:’来分隔,以第三个排序

bin:x:1:1:bin

daemon:x:2:2

adm:x:3:4:adm:/var/adm

apache:x:48:48

4. uniq 去重

uniq [-ic]

参数:

-i:忽略大小写字符

-c:进行计数

例子:

last | cut -d ' ' -f 1 | sort |uniq (其中last查看登录信息)

reboot

wtmp

wyl

last | cut -d ' ' -f 1 | sort |uniq -c

7 reboot

1 wtmp

14 wyl

5. wc计算输出信息的整体数据,行数、字数、字符数

wc [-lwm]

参数:

-l:仅列出行

-w:仅列出多少单词

-m:多少字符数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值