文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

简单谈一谈压力测试

最近,在做API的压力测试,趟了不少坑,然后呢,简要记录一下。 压测前需要准备的一些事 拿到API文档不要立马上手,先基准测试,就是执行一次接口测试,至少要压这个接口,要先熟悉一下他的参...

浮躁的码农
31分钟前
0
0
PHP 错误调查

一.定义:PHP错误是由PHP无法读懂执行的代码引起的错误。 二:错误日志 error log 1.在php.ini 里设置 log_errors = on, log文件位置 error_log=/tmp/php_errors.log 2.代码里设置ini_set('...

忙碌的小蜜蜂
34分钟前
0
0
knn算法

import numpy as np def CreateDateSet(): group = np.array([[1.0, 2.0], [1.2, 0.1], [0.1, 1.4], [0.3, 3.5]]) labels = ['A','A','B','B'] return group,labels coding:utf-8 from numpy......

南桥北木
34分钟前
0
0
自己手写一个 SpringMVC 框架

前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统.所以学习Spring是Java程序员的必修课. Spring 框架对于 Java 后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,...

别打我会飞
今天
2
0
01-《Apache Tomcat 9》之文件索引

《Apache Tomcat 9》是《看Apache官方文档学英语》的第一个专栏!让我们一起在看文档的过程中学英语,在学英语的过程中夯实技术! Documentation Index - 文件索引 Introduction - 介绍 This...

飞鱼说编程
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部