文本处理三剑客(grep,sed,awk)

linux文本处理三剑客:</h4

grep:文本过滤工具

grep egrep=grep-e fgrep

sed:流编辑器 处理多个行

awk:文本编辑工具,格式化工具

grep [OPTIONS]PATTERN[FILE…]:

文本处理搜索工具,根据用户指定的“模式”对目标文本进行匹配检查;打印匹配到的行

选项:

  • –color=auto:对匹配到的文本着色显示
  • -v:显示不被pattern匹配到的行
  • -i:忽略字符大小写
  • -n:显示匹配的行号
  • -c:统计匹配的行数
  • -o:仅显示匹配到的字符串
  • -q:静默模式,不输出任何信息
  • -A#:after,显示匹配到的行和后#行
  • -B#:before,显示匹配到的行和前#行
  • -C#:context,显示匹配到的行和前后各#行
  • -e:实现多个选项间的逻辑or关系。grep–e‘cat’-e‘dog’file
  • -w:整行匹配整个单词
  • -E:使用扩展正则表达式
  • -F:相当于fgrep,不支持正则表达式
  • </ul

    grep命令使用简单实例
    1.显示所有以d开头的文件中包含test的行

    $grep‘test’d*

    2.显示在aa,bb,cc文件中匹配test的行。

    $grep‘test’aabbcc

    3.显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

    $grep‘[a-z]{5}’aa

    4.如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(1),找到就显示该行。

    $grep‘w(es)t.*1′aa

    如果用egrep或grep-E,就不用””号进行转义,直接写成’w(es)t.*1′就可以了。

    #有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用*)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按<CTRLc>,然后再试。

    <blockquote

    sed  [options]‘command’file(s)

    sed [options] -f scriptfile file(s)

    </blockquote

    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

    -n 不输出模式空间中的内容到屏幕
    -e 多点编辑 可以在一个sed命令中 同时处理多个脚本
    -f 每行一个编辑命令 sed脚本
    -r 支持扩展的正则表达式
    -l 直接编辑原文件
    地址定界:
    1.空地址:对全文进行处理
    2.单地址:
    #:指定行;
    /pattern/:被此模式所匹配到的行;注意//双斜线必须写 这是格式要求

    3.地址范围:
    #,#
    #,+#
    #,/pat1/
    /pat1/,/pat2/
    4.步进:(隔一行编辑)
    1-2:所有的奇数行

    2-2:所有的偶数行

    编辑命令:
    d:删除
    p: 显示模式空间中的内容
    a:text:在行后面追加文本“text”,支持使用n实现多行追加
    l:text:在行前面插入文本“text”,支持使用n实现多行插入  (转义)
    c:text:把匹配到的行替换为此处指定的文本“text”(替换一整行而不是某一个)O
    w:/PATH/TO/SOMEFILE:保存模式空间到的行至指定的文件中
    r把一个文件下的内容添加到所读的文件中去 文件合并
    比如 sed‘3r/etc/fstab/etc/passwd
    把/passwd这个文件添加到 /fastab中 从第三行开始
    =:为模式匹配到的行打印行号
    !:条件取反 相当于^
    地址定界!编辑命令
    s///:查找替换,其分隔符可自行指定,常用的有s@@@,s###等
    替换标记:
    g:全局替换
    w/PATH/HOMEFILE:将替换成功的结果保存至指定文件中
    p:显示替换成功的行

    高级编辑命令:
    h:把模式空间中的内容覆盖至保持空间中
    H:把模式空间中的内容追加至保持空间中
    g:把保持空间中的内容覆盖至模式空间中
    G:把保存空间中的内容追加至模式空间中
    x:把模式空间中的内容与保持空间中的内容互换
    n:覆盖读取匹配到的行下一行至模式空间中
    N:追加读取匹配到的行下一行至模式空间中
    d:删除模式空间中的行
    D:删除多行模式空间中的所有行
    示例
    sed-n‘n;pFILE:显示偶数行
    sed‘1!G;h;$!d’FILE:逆序显示文件中的内容
    sed‘$!dFILE:取出最后一行
    sed‘$!N;$!D’FILE:显示文件的后两行
    sed’/^$/d;GFILE:删除原有的所有的空白行而后为每一行后面都加上空白行
    sed‘n;d’FILE:显示奇数行
    sed‘G’FILE:在原有的每行后方添加一个空白行

    注意:
    sed-i是直接修改原文件,不是在模式空间慎重慎重慎重

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 文本处理三剑客(grep,sed,awk)