您的位置:首页 > 运维架构 > Shell

shell脚本学习(五)

2015-12-30 19:28 531 查看
1、统计文件的行数、单词数、字符数

1)行数:

wc -l file

cat file | wc -l

2)单词数

wc -w file

cat file | wc -w

3)统计字符数

wc -c file

cat file | wc -c

4)不跟任何参数时,三者都打印,打印顺序为行数、单词数、字符数

wc file

hbg@root:~/dl$ wc a.txt
      6 6 36 a.txt

hbg@root:~/dl$ cat a.txt
    apple
    gold
    iron
    orange
    silver
    steel
 hbg@root:~/dl$

5)打印文件中最长一行

wc -L file

2、正则表达式

1) “?”用于匹配单词前后可能出现的空格

例如:要匹配给定文本中的所有单词,可以使用下面的正则表达式:

( ?[a-zA-Z]+ ?) [a-zA-Z]代表一个字母或者多个字母(a-z 和 A-Z)

2)正则表达式 描述                    示例

^ 行起始标记 ^tux匹配以tux起始的行

$       行尾标记    tux$匹配以tux结尾的行

.           匹配任意一个字符             hack. 匹配hackl和hacki,但是不能匹配hackl2和hacki1,它只能匹配单个字符

[]           匹配包含在[字符]之中的任意一个字符 coo[kl] 匹配cook 或 cool

[^]          匹配除[^字符]之外的任意一个字符      9[^01] 匹配92、93,但是不匹配90和91

[-]         匹配[]中指定范围内的任意一个字符 [1-5]匹配从1~5的任意一个数字

?           匹配之前的项一次货0次          colou?r匹配 color或colour但是不能匹配colouur

+          匹配之前项一次或多次            rollno-9+匹配rollno-99、rollno-9,但是不能匹配rollno-

* 匹配之前的项0次或多次           co*l 匹配 cl、col、cooool等

()           创建一个用于匹配的子串           ma(tri)?x匹配 max 或 matrix

{n}         匹配之前的项n次              [0-9]{3}匹配任意一位3位数,可以扩展为[0-9][0-9][0-9]

{n,}         之前的项至少需要匹配n次          [0-9]{2,}匹配任意一个两位或更多位的数字

{n,m}       指定之前的项必须匹配的最小次数和最大次数 [0-9]{2,5}匹配一个2位数到5位数之间的任意一个数字

|          交替--匹配 | 两边的任意一项         Oct (1st | 2nd) 匹配Oct 1st或Oct 2nd

\ 转义符可以将上面介绍的特殊字符进行转义 a\.b匹配 a.b,但不能匹配ajb。通过在.之前加上前缀\,从而忽略了.的特殊意义

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: