首页 > 系统服务 > 详细

linux awk 命令

时间:2020-05-15 19:26:08      阅读:49      评论:0      收藏:0      [点我收藏+]

在 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 语言中常见的

 

 

 

 

 

 

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

 

linux awk 命令

原文:https://www.cnblogs.com/xiaoxie2014/p/12896359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!