设为首页 收藏本站
查看: 901|回复: 0

[经验分享] linux正则表达式与文件格式化处理指令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-29 08:56:39 | 显示全部楼层 |阅读模式
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)[list]:匹配中括号中的任一字符
    7)[n1-n2]:匹配从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的动作写在一个档案内,-f  filename则可以执行filename内的sed动作
    4)-r:sed动作支持的是延伸型正则表示法的语法
    5)-i:直接修改读取的档案内容,而不是由屏幕输出
    动作说明:’[n1][,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  -Naur  file.old  file.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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-39494-1-1.html 上篇帖子: python的字符串内建函数 下篇帖子: Linux grep、egrep 命令使用示例及详解 标点符号 特殊符号 linux before 表达式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表