LouZhang

导航

正则表达式

1. grep -A 意思是after,后面可加数字,表示列出该行外,后续的n行也列出来

    -B 意思是before,后面可加数字,表示列出该行外,前面的n行也列出来

  1) 查找特定字符串: grep -n 'the' test 找出test文件中‘the’字符串所有的行并列出行号

  2) 反向查找特定字符串:grep -vn 'the' test 找出test文件中没有‘the’字符串所有的行并列出行号

  3) 忽略大小写: -i 

  4) []选取: grep 't[ae]st' test 查找tast或者test,[]中只有一个字符,即a或者e

  5) 反向选择:grep '[^g]oo' test 查找有oo且oo前面没有g的字符串

  6) 连续选择: grep '[0-9]' test    grep '[[:digit:]]' test  查找一个数字

  7) 行首与行尾:^ $    grep '^the' test 查找行首是the 

              grep 'the¥' test 查找行尾是the 

              grep '^$' test 查找空白行

  8) 任意字符 . : grep 'g..d' test .代表一定有一个字符

  9) 多个字符 *:grep 'go*' test 代表查找g后面有0到无穷多个o的字符

  10)限定连续字符{}: grep 'o\{2\}' test 表示查找2个或者以上o的字符串

            grep 'o\{2,5\}' test 查找2到5个o的字符串

2. sed 工具:

    -n 使用安静模式,表示只有经过sed特殊处理的那一行(或者操作)才会被列出来

    -e 直接在命令行模式上进行sed的动作编辑

    -f 直接将sed的动作写在一个文件内 -f filename 则可以执行filename内的sed动作

    -i 直接修改读取的文件内容,而不是由屏幕输出

  function有以下参数:

    a 新增,a后面可接字符串,出现在新的一行(目前的下一行)

    c 替换,c后面可接字符串,这些字符串可以替换n1,n2之间的行

    d 删除,因为是删除,所以d的后面不接任何参数

    i 插入,i后面可接字符串,出现在新的一行(目前的上一行)

    p 打印,将某个选择的数据打印出来

    s 替换,例如 1,20s/old/new/g就是

  1) cat test | sed '2,5d'  表示 2到5行不打印出来(即删除)

  2) cat test | sed '2a drink tea' 表示是第二行后面加一行"drink tea"

  3) cat test | sed '2,5c NEW' 表示将第2到5行替换成"NEW"

  4) cat test | sed -n '5,7p' 表示即输出5到7行并,-n表示安静模式,如果不加则5到7行会重复显示一次

  5) sed 's/old/new/g' 替换

  6) -i 直接修改文件内容

3. 扩展正则表达式

posted on 2012-11-24 10:57  louzhang_swk  阅读(211)  评论(0编辑  收藏  举报