文档章节

awk使用方法

luckwsm
 luckwsm
发布于 2016/12/12 19:48
字数 651
阅读 2
收藏 0
点赞 0
评论 0

     用于在linux/unix下对文本和linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。

语法:

awk '{pattern + action}' {filenames}

常用的选项有:

  • -F fs   fs指定输入分隔符,默认为空格,如-F ‘:’
  • -v var=value 赋值一个用户定义变量,将外部变量传递给awk

awk内置变量:

  • $n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
  • $0 这个变量包含执行过程中当前行的文本内容。  
  • FILENAME 当前输入文件的名。
  • FS 字段分隔符(默认是任何空格)。
  • NF 表示字段数,在执行过程中对应于当前的字段数。
  • NR 表示记录数,在执行过程中对应于当前的行号。
  • OFMT 数字的输出格式(默认值是%.6g)。
  • OFS 输出字段分隔符(默认值是一个空格)。
  • ORS 输出记录分隔符(默认值是一个换行符)。
  • RS 记录分隔符(默认是一个换行符)。

示例:

以ll命令为输入值,如下图所示

[root@app_new luffy]# ll
total 570200
drwxr-xr-x. 2 root root     4096 Dec  1 07:20 conf
-rw-r--r--. 1 root root     1619 Dec  9 05:58 filebeat_app.yml
-rw-r--r--. 1 root root     1138 Dec  9 05:59 filebeat_game.yml
-rw-r--r--. 1 root root      283 Dec  9 07:49 gamecenter_any.yaml
-rw-r--r--. 1 root root      205 Dec  9 07:50 gamecenterlog.pattern
-rw-r--r--. 1 root root 25416664 Dec  9 11:25 HITV_AppStoreApi-5.3.1-2.x86_64.rpm
-rw-r--r--. 1 root root 50561808 Dec  5 13:18 HITV_GameCenter-2.7.1-2.x86_64.rpm
-rw-r--r--. 1 root root 50561964 Dec  6 01:31 HITV_GameCenter-2.7.1-3.x86_64.rpm
-rw-r--r--. 1 root root 50562716 Dec 12 07:46 HITV_GameCenter-2.7.1-4.x86_64.rpm
-rw-r--r--. 1 root root 13194608 Dec  5 12:48 HITV_GCCListener-2.7.1-2.x86_64.rpm
-rw-r--r--. 1 root root 13194960 Dec  9 11:12 HITV_GCCListener-2.7.1-3.x86_64.rpm

提取文件的大小:

[root@app_new luffy]# ll |awk '{print$5}'

4096
1619
1138
283
205
25416664
50561808
50561964
50562716
13194608
13194960

若想看文件名及文件大小:

[root@app_new luffy]# ll |awk '{print $9 "\t" $5}'
conf    4096
filebeat_app.yml        1619
filebeat_game.yml       1138
gamecenter_any.yaml     283
gamecenterlog.pattern   205
HITV_AppStoreApi-5.3.1-2.x86_64.rpm     25416664
HITV_GameCenter-2.7.1-2.x86_64.rpm      50561808
HITV_GameCenter-2.7.1-3.x86_64.rpm      50561964
HITV_GameCenter-2.7.1-4.x86_64.rpm      50562716
HITV_GCCListener-2.7.1-2.x86_64.rpm     13194608
HITV_GCCListener-2.7.1-3.x86_64.rpm     13194960

 

© 著作权归作者所有

共有 人打赏支持
luckwsm
粉丝 0
博文 6
码字总数 4340
作品 0
青岛
程序员
linux基础--awk文本分析工具详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的...

亮公子 ⋅ 2016/12/26 ⋅ 0

正则表达式、sed、awk相关资料笔记资料整合

正则表达式元字符: ^ #锚定行的开始。如:/^sed/ 匹配所有以sed开头的行。 $ #锚定行的结束。如:/sed$/ 匹配所有以sed结尾的行。 . #匹配一个非换行字符。 如:/s..d/ 匹配s后接任意两个个...

贵在坚持 ⋅ 2014/09/23 ⋅ 0

正则表达式中awk使用方法

awk 命令的基本格式 awk [options] 'program' file options 这个表示一些可选的参数选项,反正就是你爱用不用,不用可以拉到。。。 program 这个表示 awk 的可执行脚本代码,这个是必须要有的...

不知者该死 ⋅ 2017/05/17 ⋅ 0

awk sed grep 正则表达式

做事要有耐心。 虚心接受建议,你确实有很多缺点。 就算进步慢,也不可以停止前进的脚步。 AWK awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,...

wy125629 ⋅ 2017/09/27 ⋅ 0

netstat查看系统连接数及当前连接IP

1.查看当前连接IP地址: [root@centos69 ~]# netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0......

一招拜师 ⋅ 2017/06/04 ⋅ 0

Shell实现读取ini格式配置文件方法

原文 http://www.jb51.net/article/60854.htm ini文件格式一般都是由节、键、值三部分组成 格式: [第一节 ] 第一个键 = 值 第二个键 = 第二个值 [第二节 ] 第一个键 = val1,val2,val3 例子:...

pingglala ⋅ 2017/01/16 ⋅ 0

Linux系统管理——GNU awk使用方法及技巧

1、awk 基本用法: awk [options] ‘program’ var=value file… awk [options] -f programfile var=value file… awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… ......

烽火狼烟_Gk ⋅ 06/06 ⋅ 0

Linux报告生成器工具awk

Linux报告生成器工具awk awk:根据输入的信息格式化后显示出来 1.1、awk基本用法 awk [options] 'script' file1,file2,.... 或 awk [options] 'PATTERN [ACTION]' file1,file2.... 示例:awk ...

fuvip ⋅ 2017/11/18 ⋅ 0

awk命令介绍和常见使用方法

awk、sed、grep这三个命令并称为文本处理三剑客,但是awk的功能远远多出其他两个命令很多。最初由贝尔实验室研制。后来GUN组织在awk的基础上研制了gawk,现在我们在Linux使用的一般都是gawk这...

正经的青年 ⋅ 2017/08/19 ⋅ 0

shell 中数学计算总结

1、错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1,依然悲剧,呵呵 2、正确方法 1)使用let var=1 let "var+=1" echo $var ...

alfredliukai ⋅ 2015/08/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring MVC基本概念

只写Controller

颖伙虫 ⋅ 15分钟前 ⋅ 0

微软重金收购GitHub的背后逻辑原来是这样的

全球最大的开发者社区GitHub网站花落谁家的问题已经敲定,微软最终以75亿美元迎娶了这位在外界看来无比“神秘”的小家碧玉。尽管此事已过去一些时日,但整个开发者世界,包括全球各地的开源社...

linux-tao ⋅ 15分钟前 ⋅ 0

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 36分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 55分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 今天 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 今天 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部