ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux awk 命令

2020-05-15 18:03:00  阅读:281  来源: 互联网

标签:Jobs 第二列 命令 第三列 awk Jack linux txt


在 linux 系统中,有三个强大的文本分析处理工具:grep  sed  awk,其中 grep 主要用于搜索文本中的内容, sed 用于编辑,而 awk 主要用于处理和生成报表。

awk 的工作原理是将文件中的内容逐行读入,然后以空格为分隔符将这一行数据切分成几列,再对每列的元素进行各种分析处理。

下面结合实例简单介绍 awk 命令常用的几种格式:

假设文件 form.txt 中有如下内容:

Num  Name  Company  Product
1    Jobs  Apple    iPhone
2    Jack  Alibaba  taobao
3    Pony  Tencent  wechat

1. 打印第二列和第三列:

awk  '{print $2 $3}'  form.txt
>> NameCompany JobsApple JackAlibaba PonyTencent

可以看到第二列和第三列就打印出来了,但是两列数据紧贴在一起,如果我们希望以制表符来分隔开:

awk  '{print $2"\t"$3}'  form.txt
>> Name Company Jobs Apple Jack Alibaba Pony Tencent

 

2. 打印出第 2,3,4 行的第二列和第三列,以制表符分隔开:

awk  '/^[0-9]/{print $2"\t"$3}'  form.txt
>>
Jobs    Apple
Jack    Alibaba
Pony    Tencent

这里用到了 awk 的一种常用语法:  awk  ‘ 样式{命令}’  file 

表示从文件 file 中取出那些符合 “样式” 的行,然后对这些行执行{命令}

所以上面这个例子就表示:取出那些以数字开头的行,打印这些行的第二列和第三列,以制表符分隔开

 

3. 打印出前三行的第二列:

awk  '{ if (NR<=3)  {print $2"\t"$3} }'  form.txt
>>
Name    Company
Jobs    Apple
Jack    Alibaba

 这里用到了 awk 编程,在花括号内写了一小段程序,awk 编程基本都是借鉴 C 语言,所以 C 语言中常见的

 

 

 

 

 

 

|------------------------------------------|

 

标签:Jobs,第二列,命令,第三列,awk,Jack,linux,txt
来源: https://www.cnblogs.com/xiaoxie2014/p/12896359.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有