• 正则表达式


    linux其实和internet一样,都是一个充满了大量信息、数据的东西,如何有效的过滤自己不用的信息、获取有用的信息反映了一个人水平的高低,这时候用各种工具与正则的结合变的异常强大

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

    awk 对于从大的数据文件中抽取指定的数据包十分有用,比如你可以用他来管理passwd文件,或者是日志文件(相当巨大的文件,而用了awk就会变的很轻松了),通常awk都是和grep结合来用的,用grep抽出行,再用awk抽出行中指定的列,不过就算单独用awk也一样好用。

    正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串。find、vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大

    正则可以在许多种

     不同的unix/linux 程序中使用,例如:find,grep,expr,vi,sed等

     不同的编程语言中使用,例如:awk,perl,python等

    在不同的程序与语言中有一些差异

    下面的都是典型的通用概念,

    预定义字符类

    [:alnum:]  Alphanumeric characters.
    [:alpha:]  Alphabetic characters.
    [:blank:]  Space or tab characters.
    [:cntrl:]  Control characters.
    [:digit:]  Numeric characters.
    [:graph:]  Characters that are both printable and visible.  (A space is printable, but not visible, while an a is both.)
    [:lower:]  Lower-case alphabetic characters.
    [:print:]  Printable characters (characters that are not control  characters.)
    [:punct:]  Punctuation characters (characters that are not letter, digits, control characters, or space characters).
    [:space:]  Space characters (such as space, tab, and formfeed, to  name a few).
    [:upper:]  Upper-case alphabetic characters.
    [:digit:]  Characters that are hexadecimal digits.

    grep 支持三种正则 基本 扩展 perl

    正则表达式语法支持情况

    命令或环境 . [ ] ^ $ ( ) { } ? + | ( )
    vi  X   X   X   X   X 




    Visual C++  X   X   X   X   X 




    awk  X   X   X   X 

     X   X   X   X 
    sed  X   X   X   X   X   X 



    Tcl  X   X   X   X   X 
     X   X   X   X 
    ex  X   X   X   X   X   X 



    grep  X   X   X   X   X   X 



    egrep  X   X  X   X   X 
     X   X   X   X 
    fgrep  X   X   X   X   X 




    perl  X  X  X  X  X
     X  X  X  X
    命令名 正则 通配
    ls   *
    grep * *
    find *  
    sed *  
    awk *  

    [root@250-shiyan ~]# df|sed -n '//$/p'|awk '{print $5}'|sed 's/%//'

    [root@250-shiyan ~]# df|grep "/$"|awk '{print $5}'|sed 's/%//'  grep awk sed 合称拼命三郎或三剑客

    cut也是一个比较强大的工具,可以对一行字符串进行多种模式匹配的剪切操作,也可以对一个排列非常整齐的文本进行操作

    cut -d ':' -f 2  以分隔符为界

    cut -c 2-5    以字母为界

    grep主要对行过滤查找

    sed options ‘command’ file

    options

    p 打印

    s 搜索

    sed和grep主要是对文本进行“行”的操作,sed与awk是文本处理工具

    awk方法主要是对文本进行“列”的操作,awk会把每一列都取一个名字,从第一列开始:分别为$1,$2...$n

    awk [-F] "field-operator" 'comand' inputfiles

    -F和field-operator一起使用,field-operator是域分隔符,如果不使用-F选项,则默认的域分隔符为空格。后面command命令一般需要用一堆“{}”括起来,然后进行必要的操作

    sed -n  只将符合模式的行列出来

    命令名 列操作 行操作 输入
    cut    

    input file

    std input

    -

           
           
           
  • 相关阅读:
    Magicodes.IE之Excel模板导出教材订购表
    【总结】《氨基酸新晋管理者领导力培训》第一次课_Day2_学习心得
    【总结】《氨基酸新晋管理者领导力培训》第一次课_Day1_学习心得
    【管理】从技术走向管理
    python写入excel(xlswriter)--生成图表
    python-写入excel(xlswriter)
    python读取excel(xlrd)
    python接口自动化测试(八)-unittest-生成测试报告
    python接口自动化测试(六)-unittest-单个用例管理
    python接口自动化测试(七)-unittest-批量用例管理
  • 原文地址:https://www.cnblogs.com/createyuan/p/4003467.html
Copyright © 2020-2023  润新知