awk学习

示例:

[[email protected] ~]$ ll | awk ‘BEGIN{aa= 1; bb = 2; printf"hello world\n";} {aa++; bb+=2;} END{printf"aa=%s, bb=%s\n", aa, bb;}‘

hello world
aa=5, bb=10

说明:

BEGIN {}内是执行前,仅执行一次

第二个 {} 是每行都执行一次

END{} 内是执行后,仅执行一次

{} 内语句用“;” 分隔;

printf 的输出格式控制与C语言格式控制类似;

如:

[[email protected] ~]$ ll | awk ‘END{printf"%10s %03d\n", "hello world", 10;}‘

hello world 010

例:

[[email protected] WiX]$ ll | awk ‘NR!= 1 {printf"%s %s %s %s %s %s %s\n", $1, $2, $5, $6, $7, $8, $9}‘           
-rw-r--r-- 1 19541 Jan 16 2014 cmCPackWIXGenerator.cxx
-rw-r--r-- 1 2616 Jan 16 2014 cmCPackWIXGenerator.h
-rw-r--r-- 1 2822 Jan 16 2014 cmWIXRichTextFormatWriter.cxx
-rw-r--r-- 1 1263 Jan 16 2014 cmWIXRichTextFormatWriter.h
-rw-r--r-- 1 3859 Jan 16 2014 cmWIXSourceWriter.cxx
-rw-r--r-- 1 1540 Jan 16 2014 cmWIXSourceWriter.h

说明: 输出 ll 的结果,且不显示第一行结果,$X 代表ll 结果的第X列

例:

[[email protected] WiX]$ ll | awk ‘BEGIN{num=0;} $9~/.cxx/{num++;} END{printf"num:%d\n", num}‘
num:3

说明:输出ll 结果中第9列含cxx 的文件数目

参考:http://coolshell.cn/articles/9070.html

时间: 2024-10-06 08:55:44

awk学习的相关文章

sed&&awk学习笔记(1)

sed和awk的基本使用 在sed和awk中,每个指令都包括两个部分:模式和过程.模式是由斜杠(/)分割的正则表达式.过程制定一个或多个将被执行的动作. 执行过程中,读取脚本中的第一个指令并检测当前行的模式,如果没有匹配,这个过程被忽略并读取下一个指令.读取所有的指令,而不是读取与输入行匹配的第一条指令. 所有指令被解释并应用于单个行后,sed输出该行并循环处理每个输入行.awk不自动输出行,脚本中的指令控制awk最终所做的事情. 使用sed 调用sed有两种方法:在命令行上指定编辑指令,或者将

linux awk学习笔记

awk学习笔记 awk语法格式 awk '{pattern + action}' {filenames} awk作用 awk的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文件操作.完整的awk脚本通常用来格式化文本文件中的信息. 通常,awk是以文件的一行为处理单位的.awk每接收文件的一行,再执行相应的命令,来处理文本.

awk学习笔记【转】

Awk学习笔记 整理:Jims of 肥肥世家 <[email protected]> Copyright © 2004 本文遵从GPL协议,欢迎转载.修改.散布. 第一次发布时间:2004年8月6日 Table of Contents 1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符

[linux]awk 学习笔记

awk 学习笔记 最近添加了几个功能的日志,但是呢,这个日志就是输出,一般自己也发现不了问题,于是想写一些简单的监控脚本来看看日志的大致情况, 比如有没有error,每天有多少error报出来. 想到了以前运维的同时分享awk,于是想简单的学习下. 入门 最简单的输入某些列 使用$4 这种来表示 __$0__是输出整列 [root]/root/test$ps -ef|grep uwsgi|awk '{print $1,$5}' root Jul24 root Jul24 root Jul24 r

AWK学习总结(三) Records and Fields

AWK 记录和域 The NR Variable % awk '{print NR, $0}' employees 1 Tom Jones 4424 5/12/66 543354 2 Mary Adams 5346 11/4/63 28765 3 Sally Chang 1654 7/22/54 650000 4 Billy Black 1683 9/23/44 336500 NR 加入行号.逐行加一 $0 代表整行 NF 文件列数 % awk '{print $0, NF}' employee

linux中awk学习小结

awk与sed本身都是一个完整的编程语言,可以用来方便的处理文本.awk正常的结构: cat tmp.txt | awk 'BEGIN{}{}END{}'   --带有表头,带有中间的处理过程,带有结尾--常用用法:cat tmp.txt|awk '{print $1}'  --tmp.txt中字段已空格分隔,$0显示整行,$1表示第一个域,$NF最后一个,$NF-1倒数第二个域,默认的分隔符是空格--  1.域分隔符是:cat /etc/passwd|awk -F':' '{print $1,

sed、awk学习篇

[[email protected] ~]$ awk 'BEGIN {FS=":"}{shells[$NF]++;}END{for(i in shells)print i ": " shells[i];}' passwd /sbin/shutdown: 1/bin/bash: 52/sbin/nologin: 49/sbin/halt: 1/nologin: 1/bin/sync: 1 [[email protected] ~]$ cat passwd |sed '

awk学习随常记录

回顾:字符串处理 数组: 数组 : declare -a index: 0- 关联数组 : declare -A 编程:数据结构和算法 字符串处理: 切片.查找替换.查找删除.变量赋值 GUN awk: 文本处理三工具: grep ,sed ,awk grep:grep.egrep .fgrep:文本过滤工具:pattern sed:行编辑器 模式空间.保持空间 awk:报告生成器,格式化文本输出; AWK: aho,weinberger, kernigha 命名就用三个人名字的首字母 awk主

awk学习笔记

1. 数据格式 id1,n1 id2,n2 ... 要对每个id进行一个n的加和 1 cat file1 | awk -F"," '{if(n[$1]>0){n[$1]=n[$1]+$2} else{n[$1]=$2}} END{for(k in n){print k","n[k]}}' > res 这个主要利用了awk的数组

AWK 学习

一.AWK基本知识普及 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan  姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 ,  三位创建者已将它正式定义为"样式扫描和处理语言".它允许您创建简短的程序, 这些程序读取输入文件.为数据排序.处理数据.对输入执行计算以及生成报 表,还有无数其他的功能. awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 G