- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux Shell常用技巧(四)
Linux Shell常用技巧(四)Posted on 2011-11-21 06:48 Stephen_Liu阅读(3921) 评论(1) 编辑收藏九.? awk实用功能:?? ?和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行“选择”动作。如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上。如果一个动作没有模板,所有被动作指定的行都被处理。?? ??? 1.? awk的基本格式:?? ?/ awk pattern filename?? ?/ awk {action} filename?? ?/ awk pattern {action} filename?? ??? ?具体应用方式分别见如下三个用例:?? ?/ cat employees?? ?Tom Jones???????? 4424??? 5/12/66???????? 543354?? ?Mary Adams????? 5346??? 11/4/63???????? 28765?? ?Sally Chang?????? 1654??? 7/22/54???????? 650000?? ?Billy Black???????? 1683??? 9/23/44???????? 336500?? ?/ awk /Mary/ employees?? #打印所有包含模板Mary的行。?? ?Mary Adams????? 5346??? 11/4/63???????? 28765?? ?#打印文件中的第一个字段,这个域在每一行的开始,缺省由空格或其它分隔符。?? ?/ awk {print $1} employees?? ?Tom?? ?Mary?? ?Sally?? ?Billy?? ??? ?/ awk /Sally/{print $1, $2} employees #打印包含模板Sally的行的第一、第二个域字段。?? ?Sally Chang?? ??? ?2.? awk的格式输出:?? ?awk中同时提供了print和printf两种打印输出的函数,其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。下面给出基本的转码序列:转码含义\n换行\r回车\t制表符? ? / date | awk {print Month: $2 \nYear: , $6}?? ?Month: Oct?? ?Year:? 2011? ? / awk /Sally/{print \t\tHave a nice day, $1,$2 \!} employees?? ???????????????? Have a nice day, Sally Chang!?? ?在打印数字的时候你也许想控制数字的格式,我们通常用printf来完成这个功能。awk的特殊变量OFMT也可以在使用print函数的时候,控制数字的打印格式。它的默认值是%.6g----小数点后面6位将被打印。? ? / awk BEGIN { OFMT=%.2f; print 1.2456789, 12E-2}?? ?1.25? 0.12?? ?现在我们介绍一下功能更为强大的printf函数,其用法和c语言中printf基本相似。下面我们给出awk中printf的格式化说明符列表:格式化说明符功能示例结果%c打印单个ASCII字符。printf(The character is %c.\n,x)The character is A.%d打印十进制数。printf(The boy is %d years old.\n,y)The boy is 15 years old.%e打印用科学记数法表示的数。printf(z is %e.\n,z)z is 2.3e+01.%f打印浮点数。printf(z is %f.\n,z)z is 2.300000%o打印八进制数。printf(y is %o.\n,y)y is 17.%s打印字符串。printf(The name of the culprit is %s.\n,$1);The name of the culprit is Bob Smith.%x打印十六进制数。printf(y is %x.\n,y)y is f.??? 注:假设列表中的变脸值为x = A, y = 15, z = 2.3, $1 = Bob Smith??? / echo Linux | awk {printf |%-15s|\n, $1}? # %-15s表示保留15个字符的空间,同时左对齐。??? |Linu
您可能关注的文档
- 01-跨站脚本攻击解析材料之一.doc
- Shell 循环基础.doc
- 实验5-MATLAB的程序设计.doc
- shell速成.doc
- Linux 进程管理_zql.ppt
- linux考点小结.docx
- unix shell编程及实例精解.docx
- 03linux命令详解.ppt
- day2-php基础.docx
- 第8.2章 inux编程—进程操作与同步函数.ppt
- 一级造价师之建设工程技术与计量(水利)综合提升模拟卷附有答案详解.docx
- 初级经济师之初级建筑与房地产经济通关测试卷提供答案解析.docx
- 质量员之土建质量专业管理实务考前冲刺模拟卷附答案.docx
- 2023年二级建造师之二建建筑工程实务试卷附有答案详解.docx
- 2022-2023年安全员之C证(专职安全员)综合提升练习题库含答案讲解.docx
- 山东省梁山一中、嘉祥一中2024届高三下学期联合考试数学试题含解析.doc
- 2023-2024学年河南省周口市郸城一高高考仿真卷数学试题含解析.doc
- 2023-2024学年辽宁省盘锦市兴隆台区辽河油田二中高考仿真卷数学试卷含解析.doc
- 云南省镇康县第一中学2023-2024学年高三3月份第一次模拟考试数学试卷含解析.doc
- 安徽省安师大附中2024年高考仿真模拟数学试卷含解析.doc
最近下载
- 一种棘白菌素B的提取、纯化方法.pdf VIP
- 莱茵 IRIS最新标准 ISO22163:2023中文版+视频教程(链接附文末).pdf VIP
- 2022年莱芜职业技术学院工作人员招聘考试试题及答案.docx
- 学堂课程在线中西经典对话(英语)(暨大)课后作业期末考试答案.docx
- 地质勘探新技术与方法.pptx
- 一种Didemnin B的分离纯化方法.pdf VIP
- 人教版三年级第五单元“面积”大单元教学设计.pdf VIP
- 柳工机械买卖合同.pdf VIP
- 2019年全国职业院校技能大赛电子商务技能赛网店客户服务赛卷赛卷10-厨房用具(B卷).docx VIP
- 人工智能能否取代人类ppt.pptx VIP
文档评论(0)