Linux Shell笔记 (二) 正则表达式

来源:互联网 发布:windows10安装mac系统 编辑:程序博客网 时间:2024/06/05 16:01


1、正则表达式:一种用来描述文本模式的特殊语法。

2、基本元字符集及其含义
^     只匹配行首
$      只匹配行尾
*      匹配0个或多个单字符
[]     只匹配[]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]
/      只用来屏蔽一个元字符的特殊含义
.      只匹配任意单字符
pattern/{n/}        只用来匹配前面pattern出现次数。n为次数。
pattern/{n,/}       含义同上,但次数最少为n
pattern/{n,m/}    含义同上,但pattern出现次数在n与m之间。

    例如:
    ...x..x..x
    drwxrwxrw-    不匹配
    -rw-rw-rw-      不匹配
    -rx-r-xr-x         匹配
    -rwxrwxrwx     匹配   

    ^d
    drwxrwxrw-    匹配
    -rw-rw-rw-      不匹配
    -rwxrwxrwx    不匹配

    ^...1
    3482XC763D    不匹配
    3451XD7632    匹配

    trouble$    匹配一单词trouble结尾的所有字符
    ^$             匹配空行
    ^.$            匹配包含一个字符的行

    /*/.pas        匹配以*.pas结尾的所有字符或文件(因为*.都是特殊字符)

    [0123456789]或[0-9]:假定要匹配任意一个数字
    [a - z]:        任意小写字符
    [A-Z a-z]:    任意大、小写字母
    [A-Z a-z 0-9]:    匹配任意字母或数字
    [S,s]:                 匹配大、小写s

    A/{2/}B        A出现2次,AAB
    A/{4,/}B       A最少出现4次,AAAAB,AAAAAAB ……
    A/{2,4/}B     出现次数范围2-4次 AAb,AAAB,AAAAB

    [0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}  匹配IP地址

awk介绍
    1、可从文件或字符中基于制定规则浏览和抽取信息
    2、是一种自解析的编程语言
    3、三种方式调用awk:
        -命令行方式:
        awk [-F filed-spearator] 'command' input-files
        -awk脚本
            所有awk命令插入一个文件,并使awk程序可执行,然后用awk
            命令解释器作为脚本的首行,以便通过键入脚本名称来调用他
        -awk命令插入一个单独文件
            awk -f awk-script-file input-files

    4、特殊字符:+ 代表任意字符
             ? 代表一个字符
    5、匹配操作符:~ 代表匹配
               !~代表不匹配

    6、awk内置变量
        ARGC    命令行参数个数
        ARGV    命令行参数排列
        ENVIRON    支持队列中系统环境变量的使用
        FILENAME awk浏览的文件名
        FNR    浏览文件的记录数
        FS    设置输入域分隔符,等价于命令行-F选项
        NF    浏览记录的域个数
        NR    已读的记录数
        OFS    输出域分隔符
        ORS    输出记录分隔符
        RS    控制记录分隔符

    7、字符串函数
        gsub(r,s)    在整个$0中用s代替r
        gsub(r,s,t)    在整个t中用s代替r
        index(s,t)    返回s中字符串t的第一个位置
        length(s)    返回s长度
        match(s,r)    测试s中是否包含匹配r的字符串
        split(s,a,fs)    用fs上将s分成序列a
        sprint(fmt,exp)    返回经fmt格式化后的exp
        sub(r,s)    用$0中最左边最长的子串代替s
        substr(s,p)    返回字符串s中从p开始的后部分
        substr(s,p,n)    返回字符串s中从p开始长度为n的后缀部分


sed介绍
    1、sed不与初始化文件打交道,它操作的只是一个拷贝,然后所有的改动如果没有
       重定向到一个文件,将输出到屏幕。
    2、sed是一种重要的文本过滤工具,使用一行命令或者使用管道与grep与awk相结     

           合。
    3、非交互性文本流编辑。

    4、sed命令选项如下:
       n  不打印
       c  下一命令是编辑命令
       f   如果正在调用sed脚本文件

信号
    SIGHUP    挂起或父进程被杀死
    SIGINT    来自键盘的中断信号,通常是<Ctrl+c>
    SIGQUIT    从键盘退出
    SIGKILL    无条件终止
    SIGSEGV    段(内存)冲突
    SIGTERM    软件终止(缺省杀死进程)

    信号0为“退出Shell”信号。为了发出信号0,只要从命令
    行键入exit,或在一个进程或命令行中使用<Ctrl + c>即可。

 

原创粉丝点击