regw333 发表于 2014-12-29 08:56:39

linux正则表达式与文件格式化处理指令

1.特殊符号:
    1)[:alnum:]:字母和数字
    2)[:alpha:]:字母
    3)[:blank:]:空格和tab键
    4)[:cntrl:]:控制键CR,LF,Tab,Del等
    5)[:digit:]:数字
    6)[:graph:]:除了空格符(空格和tab)外的其他按键
    7)[:lower:]:小写字母
    8)[:print:]:可打印字符
    9)[:punct:]:标点符号
    10)[:upper:]:大写字母
    11)[:space:]:空白字符,如空格,tab,ctr等
    12)[:xdigit:]:16进制数字
2.grep[-AB] [--color=auto] ‘搜寻字符串’ filename:参数
    1)-A:after,后面直接接数字,除了列出该行之外,还列出后面的n行
    2)-B:before,后面直接接数字,除了列出该行之外,还列出后面的n行

3.dmesg[-cn][-s <缓冲区大小>]:显示开机信息,保存在/var/log目录中,参数:
    1)-c:显示信息后,清除ring buffer中的内容
    2)-s<缓冲区大小>:预设置为81896,刚好等于ring buffer的大小
    3)-n:设置记录信息的层级
    说明:该指令主要用于显示内核环缓冲区内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关信息填到这个缓冲区中。内核缓冲区中消息对于诊断系统问题,通常非常有用。在运行dmesg时,它显示大量信息。通常通过less或grep使用管道查看dmesg的输出,这样可以更容易找到待查信息。
4.正则表达式中,“.”有且仅有一个任意字符;“*”:表示重复前一个字符0次或多次。
5.正则表达式小结:
    1)^word:待搜索字符在行首
    2)word$:待搜索字符在行尾
    3).:一个任意字符
    4)\:转义字符
    5)*:重复前一个字符0次或多次
    6):匹配中括号中的任一字符
    7):匹配从n1到n2之间连续字符中的一个
    8)[^list]:匹配除了list以外的任一字符
    9)\{n,m\}:重复前一个字符n到m次
6.sed[-nefr] [动作]:管线命令,可以对数据进行取代,删除新增,撷取特定行等,参数,
    1)-n:使用安静模式,在一般sed的用法中,所有来自STDIN的数据都会被列到屏幕上但如果加上-n参数后,则只有经过sed特殊处理的哪一行才会被列出来
    2)-e:直接在指令列模式上进行sed的动作编辑,即进行多个指令连续操作
    3)-f:直接将sed的动作写在一个档案内,-ffilename则可以执行filename内的sed动作
    4)-r:sed动作支持的是延伸型正则表示法的语法
    5)-i:直接修改读取的档案内容,而不是由屏幕输出
    动作说明:’[,n2]function’
    n1,n2:不见得会存在,一般表示“选择进行动作的行数
    function 有如下这些:
    1)a:新增,a的后面可以接字符串,而这些字符串会在下一行出现
    2)c:取代,c的后面可以接字符串,这些字符串可以取代n1,n2之间的行
    3)d:删除,
    4)i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行)
    5)p:打印,亦即将某个选择的数据打印出,通常p会与参数sed –n一起运作
    6)s:取代,可以直接进行取代的工作,通常这个s可以搭配正则表示法。
7.egrep :延伸正则表达式,相当于grep的加强版,延伸正则表达式支持的特殊符号:
    1)+:重复一个或多个前一个字符
    2)?:零个或一个前面的字符
    3)|:用或的方式找出数个字符串
    4)():找出群组字符串
    5)()+:重复括号中的字符一次或多次
8.printf‘打印格式’ 实际内容:非管线指令,打印格式有:
    1)\a:警告声音输出
    2)\b:退格键
    3)\f:清除屏幕
    4)\n:输出新的一行
    5)\r:亦即Enter键
    6)\t:水平的tab键
    7)\v:垂直的tab键
    8)\xNN NN为两位数字,可以转换数字称为字符
    常见的参数格式
    1)%ns:n,数字,s字符串,即有多少个字符串
    2)%ni:i,integer,即有多少个整数字数
    3)%N.nf:f,float,即有N位整数位,和n位小数位
9.awk‘条件类型1{动作1} 条件类型2{动作2} …’ filename:数据处理工具,适用于小型数据处理,该指令可以处理后续接的档案,也可以读取来自前一个指令的standard out,awk主要处理每一行的段内的数据,而默认的字段分隔符为空格或tab键。即通过$n(n从1开始),表示第几个字段。awk以行为处理单位,以字段为一次最小处理单位,awk内建变量,
    1)NF:每一行($0)拥有的字段总数
    2)NR:目前awk所处理的第几行数据
    3)FS:目前的分隔符,默认是空格键
    awk逻辑运算字符:>,<,>=,<=,==,!=。
    awk的指令间隔:所有awk的动作,亦即在{}内的动作,如果有需要多个指令辅助时,可利用“;”间隔,或者直接以Enter按键来隔开。
    在格式化输出时,在printf的格式设定当中,务必加上\n,才能进行分析
    awk中变量可以直接使用,不需要加上$符号
    awk还支持if条件判断。
10.diff[-bBi] from –file to -file:用来比较两个档案之间的差异,并且是以行为单位来对比的。参数:
    1)from-file:一个档名,作为原始对比档案名
    2)to-file:一个档名,作为目的对比档案的档名
    这里 from –file 或to –file可以用-取代,那个-代表标准输入之意。
    3)-b:忽略一行当中,仅有多个空白的差异
    4)-B:忽略空白行的差异
    5)-i:忽略大小写的差异
    可以通过diff-Naurfile.oldfile.new>file.patch:生成差异档案。在档案中,行首“-”号代表旧的档案删除的内容,+代表新的档案添加的内容。
11.cmp[-s] file1 file2:通过字节单位对比两个档案的差异,参数:
    1)-s:将所有不同点的字节处都列出来,因为预设cmp仅会输出第一个发现不同点。
    这个指令多用于比较binary文件。
12.patch–pN <patch_file,更新档案;patch-R–pN <patch_file,还原成旧档案:参数,
    1)-P:后面可以接取消几层目录
    2)-R:代表还原,将新的档案还原成原来旧的档案
    其中patch_file是diff生成的差异档案
13.pr:打印档案的指令,会有页码、标题等

页: [1]
查看完整版本: linux正则表达式与文件格式化处理指令