文档章节

awk使用方法

luckwsm
 luckwsm
发布于 2016/12/12 19:48
字数 651
阅读 2
收藏 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
博文 17
码字总数 4595
作品 0
青岛
程序员
linux基础--awk文本分析工具详解

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

亮公子
2016/12/26
0
0
正则表达式、sed、awk相关资料笔记资料整合

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

贵在坚持
2014/09/23
0
0
使用shell脚本获取流量信息

  前言   使用shell命令从/proc/net/dev获取流量信息进行监控。      脚本   #!/bin/bash   interface=$1   warnrxlimit=$2   warntxlimit=$3   criticalrxlimit=$4   c...

linux运维菜
07/18
0
0
正则表达式中awk使用方法

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

不知者该死
2017/05/17
0
0
awk sed grep 正则表达式

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

wy125629
2017/09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

异步化,高并发大杀器

今天来聊聊如何让项目异步化的一些事。 在进入正文之前,顺便给大家推荐一个Java架构方面的交流学习群:698581634,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分...

Java大蜗牛
9分钟前
0
0
织梦dedecms安全设置

网站本身做好防范: 1、修改默认后台名。 打开网站根目录,找到[dede],这个文件夹就是后台的路径,可以随意修改,比如修改为[adminbuy],此时后台登陆的路径为:http://www.*****.com/admi...

雨季2014
9分钟前
0
0
完美Python入门基础知识点总结,看完你的Python就完全入门了!

Python标识符 在 Python 里,标识符有字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线...

糖宝lsh
15分钟前
0
0
Java关于前后台传输中文乱码以及Excel下载乱码解决

针对乱码,一般情况是前后台以及中间件编码格式不同导致.故需要保证编码格式相同即可. 1.前台页面格式指定,这里用的是jsp,故需要将pageEncoding指定为"UTF-8" 2.指定服务器编码格式,比如用的t...

勤奋的蚂蚁
18分钟前
0
0
Flutter组件 - Flexible

Flexible是一个控制Row、Column、Flex等子组件如何布局的组件。 Flexible组件可以使Row、Column、Flex等子组件在主轴方向有填充可用空间的能力(例如,Row在水平方向,Column在垂直方向),但是...

一箭落旄头
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部