您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Linux三剑客
  所属分类: Linux
  开发工具:
  文件大小: 2mb
  下载次数: 0
  上传时间: 2019-03-02
  提 供 者: u0102*****
 详细说明:Linux最强三剑客 sed grep awk 写的很不错,值得收藏。20192/19 不看绝对后悔的Lnux二剑客之aw实战精讲-飞得更高-51CTO博客 mail x mail var spool mail sbin nologin uucp x uucp var spool uucp sbin nologin 思路 让所有单词排成一列,这样每个单词都是单独的一行 1)设置RS值为空格 2)将文件里面的所有空格替换为回奂行符n 3)grep所有连续的字母,grep-0参数让他们排成一列。 z= tChen2ai1#日2】↑ak'BE{=”1+"】{xnt}!anz2x|uaq-|ax 1上ah 2d世 3 Tai 322t 3 shusen 3 3 mucH 5上t 521c24B 12=1 1.6字段与记录小结 现在你应该会对awk的记录字段有所」解」,下面我们总结一下,学会给阶段知识总结是学好运维的必备技能 ·Rs记录分隔符,表示每行的结束标志 NR行号(记录号) FS字段分隔符,每列的分隔标志或结束标志 ·NF就是每行有多少列,每个记录中字段的数量 符号表示取某个列(字段),s192HE NF表示记录中的区域(列)数量,sN取最后一个列(区域。) FS(-F)字段(列)分隔符,干(FS)“:"<=> BEGINFS=:} ·Rs记录分隔符(行的结束标识) 送图书 NR行号 选好合适的刀FS()Rs,OFs,ORs 分隔符=>结束标识 记录与区域,你就对我们所谓的行与列,有了新的认识(RS,FS) 第2章aWk进阶 2.1awk模式与动作 接下来就详细介绍下,awk的模式都有几种 正则表达式作为模式 ·比较表达式作为模式 范围模式 特殊模式BEGN和END awk的模式是你玩好awk的必备也是最基础的内容,必须熟练掌握 2.2正则表达式作为模式 awk同sed一样也可以通过模式匹配来对输入的文本进行匹配处。说到模式匹配,肯定少不了正则表达式,aWk也支持大量的正则表 达式模式,大部分与sed支寺的元字符类似,而且正则表达式是玩转三剑客的必各工具,下表列出了awk支持的正则表达式元字符: awk默认就支持的元字符 在线 元字 客服 示例 Achensiqi或s3-/c匹配所有以 chensiq评头的字符串;匹配出所有第三列 ^字符串开头 hensiqi/ 中以 chensiqi开头的 字符串结尾 chensiq$3~(h匹配所有以 chensiqis结尾的字符串;匹配第三列中以ch ensigns/ ensI结尾的 点)些配任意但个字符(包括 /c. I/ 回车符) 匹配字母c,然后两个任意字符,再以塔尾的行 http://blog.51cto.com/hujiangtao/1923930 3/15 20192/19 不看绝对后悔的LnuⅨ二剑客之aw实战精讲-飞得更高-51CTO博客 元字 符功 示例 解释 重复0个或多个前一个字 /a*cool/ 符 匹配0个或多个a之后紧跟着coo的行 重复前一个字符一次或多 匹配一个或多个a加上字符串b的行 次 匹配0个或一个前边的字 /a?b/ 符 匹配以字母a或b或c开头的行 比指定字符组内的任一 Mabey 匹配以字母a或b或c开头的行 匹配不在指定字符组内的 任一字符 MAabcy 匹配不以字母a或b或c开头的行 0子表达式组合 /(chensiqi)+/ 表示一个或多个c0合,当有一些字符需要组合时, 使用括号括起来 或者的意思 (chencici:, 匹配 shensi或字母B的行 awk默认不支持的元字符:(参数-posi) 元字符功能 示例 解释 x(m}凉字符重复m次 /co5}匹配字符5次 xm}x字符重复至少m次 (coo(2y匹配coo整体,至少2次 xmnx字符重复至少m次,但不超过次/co056匹配oo整体,至少5次,最多6次 提示 加括号代表整体匹配,不加那么就匹配前边的一个字符。awk默认不支持这种形式的正则,需要加-posx 参数或者-e- nterval ·正则表达式的运用,默认是在行内查找匹配的字符串,若有匹配则执行 action操作,但是有时候仅需要固 定的列来匹配指定的正则表达式,比如:我想取/ etc/passwd文件中第五列{S5一列查找匹配ma字符串 的行,这样就需要用另外两个匹配操作符,并且awk里面只有这两个操作符来匹配正则表达式。 2.2.1awk正则匹配操作符 送图书 awk正则匹配操作符: ~|用于对记录或区域的表达式进行匹配 l|用于表达与~相反的意思 下面还是通过具体示例米看看,awk如何米通过正则表达式匹配字符串的 2.2.2awki则表达式匹配整行 [rootachensiqil files]# awk -F:"'/root/'awkfile txt root: x: 0: 0: root: /root: /bin/ bash 和下面的效果是一样的 [rootachensiqgil files]# awk -F:"SOw/root/ awkfile txt root: x: 0: 0: root: /root: /bin/bash 提示: awk只用正则表达式的时候是默认匹配鍪行的即$0~/^root/和/^root/是一样的 2.23awk正则表达式匹配一行中的某一列 [rootdchensiqil tiles awk -F: " $5/shutdown/ awkfile txt shutdown: x: 6: 0: shutdown: / sbin: /sbin/shutdow 提示 $5表示第五个区域(列) 表示匹配(正则表达式匹配) / shutdown表示匹配 shutdow这个字符串 合并在一起 在线 客服 5~/ shutdown/表示第五个区域(列匹配正则表达式/ shutdown/,既第5列包含 shutdown这个字符串,则显示这一行 2.24某个区域中的开头和结尾 知道」妇何仗用正则表达式匹配操作符之后,我们来看看aWk正则与grep和sed个同的地方。 awk正则表达式 ^|匹配一个字符串的开头 $|匹配一个字符串的结尾 http://blog.51cto.com/hujiangtao/1923930 4/15 20192/19 不看绝对后悔的Lnu剑客之aw实战精讲-飞得更高-51CTO博客 Sed和grep这两个命令中,我们都把它们当作行的开头和结尾。但是在awk中他表示的是字符串的开头和结尾 接下来我们通过练习题来联系aWk如何使用正则表达式。 2.25创建测试环境 [roc-echenaigil t cat >>/server/f-Lea/reg.txt<=大于或等于x>=y 大于 以上运算符是针对数字的,下面两个运算符之前已有示例,对字符串 与正则表达式匹配x~y 与正则表达式不匹配x-y 2.3.1企业面试题:取出文件/etc/ services的23-30行 思路: 想表示一个范围,一个行的范围,就要用到NR这个内置变量了,同时也妻用到比较表达式 [rootGwww -]y awk 'NR>-2366NR<-30./etc/services rootwww # a NR>& 3/e ⊥Uce5 1)比较表达式比较常用的还是表示大于等于,小于等于或者等于,根据这个例子来学习即可 2)NR表示行号,大丁等于23即,NR>=23小丁等于30,即NR<-30 3)合起来就是NR>=23并且NR<=30,8&表示并且,同时成立的意思。 4)换一种表达式方法就是大于22行小于31行,即NR>2288NR<31 2.3.2如果判断某一列是否等于某个字符呢? 示例:找出/etc/ passwd中第土列是root的行 送图书 测试文件 x囗tgw~]cat/ server/Eiea/awk=qa1.七xt oct:H:0: 0:root: /roct:/bin oaah root: x: 0: 0: rootroot/ roct:oin 'bash cot:x: 0: d: roatrooot rcot:bin/bash root: x: 0: 0:rotrooot:/root:/bin/Cash root: x: 0: 0:/rcot: /bin/bash 答 auk -FI,mm zt"/B会v!51÷/BMEe址aLtz awk -F:550/roota//server/=iles/awk equal.txt 2.4范围模式 pattern1 pattern2 从哪里来到哪里去 条件1 条件2 ·范围模式简单理解就是从哪里来,到哪里去。 匹配从条件1开始到条件2介绍的范围 1)还记得sed使用地址范围来处理文本內容嘛?awk的沌围模式,与sed类似,但是又有不 在线 司,awk不能直接使用行号来作为范围起始地址,因为awk具有内置变量NR来存储记录号, 客服 所有需要使用NR=1NR=5这样来使用 2)范围模式处理的原则是:先匹配从第一个模式的首次出现到第二个模式的首次出现之间 的內容,执行 action。然后匹配从第一个模式的下一次出现到第二个模式的下一次出现,直 到文本结束。如果匹配到第一个模式而没有匹配到第二个模式,则awk处理从第一个模式开 始直到文本结束全部的行。如果第—个模式不匹配,就算第二个模式匹配。awk依旧不处理 任何行。 http://blog.51cto.com/hujiangtao/1923930 8/15 20192/19 不看绝对后悔的LnuⅨ二剑客之aw实战精讲-飞得更高-51CTO博客 awk '/start pos/,/ end pos/print $)) passwd chensiq1 awk ' /start pos/, Nr==XXXiprint $0 passwd chensiqi 范围模式的时候,范围条件的付候,表达式必须能匹配一行。 tw"M1:!w:"==2,13==5{=≌i2=1,}1=2n,tz 2ini"上ins1"nc1gir 3 daemon x daemon shin sbin nolcg-n auin x dull vcr uin yin uulugit1 5 Ir x lp vay sp201 Ipc sbin login 条件是:从第二行,到第五行 动作是:显小行号(NR)和整行($0 合来就是显示第二行到第五行的行好和整行的内容 frootwww fil=s]+ awI: /bin/, IR=5( print NR, 90] awkfile txt 2 bin: x: 1: 1: bin:,bir:/scin/noIogLT 4 aom:x3:4:a- aar:/30In/nclogin s Ip:x:4: 7:lp:/var/=p001/Ipi:sbir/nslcgin 说明: 条件是:从以bin开头的行,到第五行 动作是:显示行号和整行内容 合起来就是显示从以bin尸头的行,到第五行中的行号和整行内容 [route files awk -:s5/bin/,"lp/Erin. NR, s0 awkfiletxt 2b1::1:1:bm:/D⊥n;/ab⊥n/1g1 3 daemon:x: 212: daemon: /shin:/sbin/mologin 4 80m:*: 3:4:adm:/varyadr:/hin/nologin a n:x:4: 7:p: vE/ aron/nd:/shi n/noemi n 现明 条件;从第五列以b开头的行到以p开的行 的:显小打号和正航容 送图书 合起米:从第三列以b开始的行到D开义的行并显示行号和整行内容 [soot11e14aMk-F:"薛5-/“b:n/,毒5m/“1p/【 arint N,0}awk1e,tt 2 bin:x: 1: 1: bin: / bin:/sbi/nolouin 3 daemon: x:2: 2: daemon:/sbir:/sbin nolog-n 4 amm:x: 1:4: anm:/wa/anm:/snim/mo: omn 5 Ip:x4: 7:n:/var/sroolrIpd: /ahin/ nologtn 条件:从第三列以bn开头字符串的行到第二列以开头字符牛的行 动作:显示行号和整行 2.5awk特殊模式- BEGIN模式与END模式 ·BEGN模块再awk读取文件之前就执行,一般用来定义我们的内置变量(预定义变量,eg:FS,RS),可以 输出表头(类似exce俵表格名称) BEGN模式之前我们有在示例中提到,自定义变量,给内容变量赋值等,都使用过。需要注意的是BEG N模式后面要接跟一个 action操作块,包含在大括号内。awk必须在输入文件进行任何处理前先执行BEGl N里的动作( action)。我们可以不要任何输入文件,就可以对BEGN模块讲行测试,因为awk需要先执 行完BEGN模式,才对翰入文件做处理。BEGN模式常常被用来修改内置变量ORS,RS,FS,OFS等 值 2.5.1 BEGIN模块 1)第一个作用,内置变量的定 在线 客服 示例:取eth0的IP地址 http://blog.51cto.com/hujiangtao/1923930 9/15 20192/19 不看绝对后悔的 Linux二剑客之aw实战精讲-飞得更高-51CTO博客 treated4日】= cnEg eth。laMk-""(adx;)1(器aE:}””==2prm1 1:.1:7.133 [rootgiww fileal* ifconfig etho I awk -F"[:1+""NRmm2-rinr s4 132.15217.133 [root sw Efle9= ffccnfdy ethdI ank -E[0-9.:+"WHEs2Print 523 192.168.197.133 神的也可以成 4 BEGINE3-"{;》1#)"】-21》} 1z.168.197,133 [reedsmaN1e1·±fan1g I awk'EECINt=S="t ::"332-m20petnt e4]" 121.17133 ==taww五l=2l曹inqh。lank"EaME【-2.】+"]-2(xnF2} 2)第二个作用,在读取文件之前,输出些提小性信息(表头)。 [reetiwH :11291= avk 订工4这就是比的表头信思 IE SYnc J 要在第一行输出一些 username和UD,我们应该想到BEGN这个特殊的条件(模式),为BEGN}在aWk读取文件之前执行 以结果是 bEGIN(print" username","UI"),江意prnt命令生由双引号吃啥吐啥,原样输出 然后我们实现了在输出文件内容之前输出" username"和UD",下步输出文件的第列和第三列即 (print s1,s3) 最后结果就是 BEGIN Print" username","UID"|2rins1,53 3)第二个作用,使用 BEGIN模块的特殊性质,进行一些测试 irw:e8]简单输出内容 [Eoot ewww =]. awk 'BEGI[print hello world!") hEllo world x3w!e3]*希进行计算 【 rosEN 1e81awk'BGTI【 prInt10/3 [ronr eww fileR]s awk 'RFGTWInrint. 10/3+1) 433333 送图书 x。M1想5] awk ' BEGIN[print10/3+/4+9} .55335 [rooceww11es]和帝有关的作 [rootm files+ ak 'BEGIN[a=l: b-z: print a, by 【是wMw1Les】 au EEG【a=1;b=2: rint a,b,s+b 123 2.52awk中变量的概念简介 ·直接定义,直接使用即可 awk中字母会被认为是变量,如果真的要给一个变量赋值字母(字符串),请使用双引号 〓公th1e3aMk"EEI{a=akc2na;" [rootecheraigi files awk 'BEGIN aicc=123455 a=abcd; print all 123456 △二che:8111号3#Ewk"BEI{a="Bbca":Px1nta] abc- 说明 没有文件aWk依旧可以处理 BEGIN模式下的动作(命令) 2.5.3END模块 EHD在awk读取完所有的文件的时候,再执行END莫,一般用来输出一个结果(累川,数组结果),也可以是和 BEGIN模块癸似的 结尾标识信息 在线 rGhn#l特】+wk【”“he2%4!”】Bmt,4朝En”m4=e” F ceant,r 客服 h在125里16! 11△富△5t122t上B出 2 tin I bin bin biz rlogin 二e2axe二31n1naaa13 4甚出ada1n101n 5 Ie x o ver cool Ipd sein taloga 4=xmc=t上ir= T shreder x anadem sb:: sb.r shtoom Pt割5T e bail x nail war arcol rail =tin 1c02a 与B三GN模式相对应的END模式:格式一栏,但是END模式仅在aWk理完所有输入行后才进行处理 http://blog.51cto.com/hujiangtao/1923930 10/15
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: linux三剑客
 输入关键字,在本站1000多万海量源码库中尽情搜索: