Linux 三剑客实例详解_第1页
Linux 三剑客实例详解_第2页
Linux 三剑客实例详解_第3页
Linux 三剑客实例详解_第4页
Linux 三剑客实例详解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux三剑客实例详解「grep、sed、awk」Linux操作文本的三大利器分别是grep、sed、awk,简称三剑客。大师兄awk:最擅长取列;二师兄sed:最擅长取行;三师兄grep:最擅长过滤。正则表达式元宇符说明A匹呢有苜表示I1S-T字符开头$匹配行尾表示以学个学符焙尾表示强匹配任意单个字符,包括。次无示匹配一个非揍订简构任惠字得■匹E0个或我个字符表示可座玺豹任.愚手个字符IJ匹配指定范匣内的任意单个字符表元过滴中括弭内的任恿轿字符n匹配平在指定范围内的字简表示排辞指定范也内的手符匹酣午息恍度任腰字符.不包括。次表示任惠*T字苻匹配子申表示匹配子宇毋存摧景宇符用来音琐其他字符羡示援震的字符来替换替勉字用匹配单词的开始表示单词构开始,其后面的任痘字符必36作为单饲的首部出现匹配单词的培束表示单词的培束,其前面的任慧字苻必顼作为单词的尾塞出现瑚响匹配字符x出m次表示统计字将X的出理次食匹配字捋*出现次数,至少E次表示貌计字苻X的出迎次数,至少n次观e.M}匹配字苻*出现次啾至俳m况不茹于上决表示垸计字花x的出理展舐在间匹配其削;面的字椅1次吨0次表示挽计前面的字苻出现1次威。次大师兄■■AWKawk是对文本进行格式化的工具,适合处理比较复杂的格式处理。有多个版本:1、newawk:nawk;2、gawk,awkawk命令格式:awk[options]'script'file1file2,...awk[options]'PATTERN(acticon}'file1file2,...格式说明:pattern部分决定动作语句何时触发及触发事件:BEGIN、ENDaction对数据进行处理,放在{}内指明:print、printf最常用的是print,默认以空白字符分隔$0代表整行,$1代表第1段,$2代表第2段,以此类推,$NF代表最后一个字段,多个字段直接用逗号隔开awk'(print$1,$2}'xxx.log打印操作支持拼接打印,如:awk'(print"first"$1,$2}'xxx.logoptions参数:输入分隔符,默认以空白字符分隔,通过-F选项来执行分隔符awk-F'#''(print$1,$2}'test♦examplesgit:(master)xcattestabc#bcd#123#456#789#hahahaadc#aaa#bbb#ccc#ddd#eeeljl#lll#ggg#jjj#kkkwoeto#3242352^nimnm#nnn#xxadbdl#adb#ad#a1234#]23456#1234567#234xexamplesgit:Caster}Xawk-Fr{print$1,$2}1testabcbedadcaaaIjl1Uwoeto3242352adbdladb1234123456Xhups^blog.esdn,net1ariS6_raiiA输出分隔符,默认情况下输出分隔符是空格,使用内置变量OFS来设定输出分隔符,需要加上-v选项Texamplesgit;(master)*cattestabc#bcd^l23M56^789^hahahaadc#aaa^bbt>#ccc#ddd#eee1jj#kkkwoeto#324Z35Z#mmnm#nnn#xxadbdl#adb#ad#a1Z3林L2345础1234567^234xtexamplesgit:Cmaster)Xawk-vOFS='r-->'r1{printtest□火纺cM123钏56"89期曰hnhe-Aadc#aaa^bbb#ccc#ddd#ece-->Ijl#lll#ggg#jjj#kkk—>waeto^3242352#mrnnrn#nnn#xx-->adbdl#ad^ad#a-->1234#123456#1234567#234-->X>hil^y/blog^E-d^nidti'lansG.rairiawk变量FS:输入字段分隔符,默认空白字符,一般需要加-FOFS:输出字段分隔符,默认是空格,一般需要加-vNF:分隔后的字段数量NR:当前行的行号pattern模式:模式是条件,符合条件的行,awk才会进行处理关系运算模式:awk-F'#''NF==5(print$1}'test如果行的分段数量为5的话,进行打印操作,其他的类似,如NF>2,NF<4,$1==1234等都是判断条件♦excmplesgit:(master)Xcattestabc#bcd#lZ3#456#789#hahahaadc^aaa#bbb#ccc#ddd#eeeIjj#kkkwoeto#3242352#nirinm#rinn#xxadbdl#adb#ad^a1234#123456#1234567#234xTexcmplesgit:(master)Xawk-F'#rTNF=5{print$1}TtestIjlfnhi;lps-ji!tolD1ans€_min->excmplesgit;(master1jtawk-FnNF>=4瓯NF<=5(print$l}rtestLjlwoetoadbdl1Z34二师兄--sedsed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。sed命令格式:sed[options]...'script'inputfile选项-n:不输出模式空间内容到屏幕,即不自动打印-e:多点编辑-f/PATH/SCRIPT_FILE:从指定文件中读取编辑脚本-r:支持使用扩展正则表达式-i:直接编辑文件-i.bak:备份文件并原处编辑script地址定界不给地址:对全文进行处理单地址:#:指定的行;$:最后一行/pattern/:被此处模式所能够匹配到的每一行编辑命令d删除模式空间匹配的行,并立即启用下一轮循环p显示符合条件的行,追加到默认输出之后a[\]text1在指定行后面追加文本,支持使用\n实现多行追加i[\]text在行前面插入文本c[\]text替换行为单行或多行文本w/path/somefile保存模式匹配的行至指定文件r/path/somefile读取指定文件的文本至模式空间中匹配到的行后=为模式空间中的行打印行号!模式空间中匹配行取反处理s///:查找替换,支持使用其它分隔符,s@@@,s###替换标记:g行内全局替换p显示替换成功的行w/PATH/TO/SOMEFILE将替换成功的行保存至文件中sed-n2ptest打印第2行内容♦examplesgit:(master)Xcattestabc#bcd#123#456#789#hahahaadc#aaa#bbb#ccc#ddd#eeeljl#lll#ggg#jjj#kkkwoeto#3242352#mmnm#nnn#xxadbdl#adb#ad#a1234#123456#1234567#234x■examplesgit:(master)Xsed-n2ptestadc#QQQ#bbb#ccc#ddd#eeehttps^/lanse-rainsed-n2,5ptest打印第2--5行内容—examplesgit:(master)Xsed-n2,5ptestadc#aaa#bbb#ccc#ddd#eeeljl#Lll#ggg#jjj#kkkwoeto#324Z352#mmnm#nnn#xxadbdl#adb#ad#ased-i's/a/v/g'test将文件中的a全部替换为v「sed替换格式是:sed-i‘s/要替换的内容/替换成的内容/g'文件名」mac上执行上述命令会报措sed:1:Mtest(,:undefinedlabel1est.txt解决方案:增加一个畚份的追加名[sed-i\bak'(s/a/v/g-test]678

g原因:mmc强制要求备份,否则报错当然可以不使用其678

g-+examplesgit:(master)Xcattestabc#bcd#123#456#789#hahahaadc#aaa#bbb#ccc#ddd#eee1jj#kkkwoeto#3242352#mmnm#nnn#xxadbdl#adb#ad#a1234#123456#1234567#234adc—examplesgit:(master)Xsed-i11Ts/a/v/g*test-+examplesgit:(master)Xcattestvbc#bcd#123#456#789#hvhvhvvdc#vvv#bbb#ccc#ddd#eee1jj#kkkwoeto#3242352#mmnm#nnn#xxvdbdl#vdb#vd#v1234#123456#1234567#234Vdchnp&//b)og.csdnnet1an&e_r5iin三师兄--grepgrep强大的文本搜索工具,根据模式搜索文本,并将符合模式的文本行显示出来。gerp命令格式:grep[option]pattern[file]option:-i:忽略字符大小写-n:显示匹配的行号-v:显示没有被匹配的行--color:将匹配的字符以高亮颜色标记出来-c:统计匹配的行数-o:仅显示匹配到的字符串-q:静默模式,不输出任何信息-e:实现多个选项间的逻辑or关系-v:反转查找•-w:匹配整个单词-A:after,显示后行-B:before,显示前行-C:context,显示前后行-E:相当于egrep,艮口grep-E=egrep实例说明:grep-i'b'test在文件test中查找字符b—examplesgit;(master)Xcattestvbc#bcd#123M56#789#hvhvhvvdc#vvv#bbb#ccc#ddd#eeewoeto#3242352#mmnm#nnn#xxvdbdl#vdb#vd#v1234#123456#1234567#234vdc-4examplesgit:(master)*grep-irbrtestvbc#bcd#123M56#789#hvhvhvvdc#vvv#bbb#ccc#ddd#eeevdbdl#vdb#vd#vhttps7//1anse.,raingrep-q'abc'test静默执行。不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试examplesgit:(master)Xgrep-q'abc'testexamplesgit:(master)x|grep-n'v'test查找包含字符v的行数—examplesgit:(master)xcattestvbc#bcd#123#456#789#hvhvhvvdc#vw#bbb#ccc#ddd#eeeljl#lVL#ggg#jjj#kkkwoeto#3242352#irmnm#nnn#xxvdbdl#vdb#vd#v1234#123456#1234567#23^vdc•4examplesgit:(master)Xgrep-nTv1test1:vbc#bcd#123#456#789#hvhvhv2:vdc#wv#bbb#ccc#ddd#eee5:vdbdl#vdb#vd#v7:vdchttps^//lanse.raingrep-nv'v'test查找不包含字符v的行数•+examplesgit:(master)Xgrep-nv1vrtest3:1jl#lll#ggg#jjj#kkk4:woeto#324-2352#mmntn#nnn#xx6:1234#123456#1234567#234grep-nv$test查找以v结尾的行-►examplesgit:(master)Xcattestvbc#bcd#123#456#789#hvhvhvvdc#wv#bbb#ccc#ddd#奕。Ij1#1ll#ggg#jjj#kkkwoeto#3242352#mmnm#nnn#xxvdbdl#vdb#vd#vwooow1234#123456#1234567#234vdcwuhoo■examplesgit:(master)Xgrep-nv$test1:vbc#bcd#123#456#789#hvhvhv5:vdbdl#vdb#vd#vhllps^//lanse_raingrep-v'v'test反向查找―examplesgit:(master)Xgrep-vTvrtestwoeto#3242352#irmnm#nnn#xxwooow1234#123456#1234567#234WLih。。https^/bI/tanse_raingrep'ljl'-A2test输出匹配结果行的后2行->examplesgit:(master)Xgrep'ljl'-A2testljl#lll#ggg#jjj#kkkwoeto#3242352#mmnm#nnn#xxvdbdl#vdb#vd#vgrep'wooow'-B2test输出匹配结果行的刖2行->examplesgit:(master)xgrepTwooow1-B2testw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论