awk用法二

3、awk的printf命令

格式:printf format, item1 item2...

要点:

(1) 要指定format;

(2) 输出时不会自动换行,如需换行则需要给出\n;

(3) format用于为后面的每个item指定其输出格式;

(4) format格式的指示符都是%开头,后跟一个字符。

format常用的字符:

%c:显示字符的ASCII码

%d,%i:十进制整数;

%e,%E:科学计数法;

%f:显示浮点数;

%g,%G:以科学计数法格式或浮点数格式显示数值;

%s:显示字符串;

%u:显示无符号整数;

%%:显示%自身。

format中常用修饰符:

#:显示宽度;

-:左对齐;

+:显示数值的符号;

.#:取值精度。

实例1:以固定宽度20输出/etc/passwd文件中前10条记录的用户名和shell信息:

上例中标注的部分含义为:两个字段都是以20个字符的宽度来显示,并且以换行符为每行的结束符。

实例2:将上例中的用户名以左对齐显示:

实例3:将3.14159取2位小数显示:

  4、awk的操作符

算术操作符:

x+y:加

x-y:减

x*y:乘

x/y:除

x**(^)y:乘方

x%y:取模

-x:负值

+x:转换为数值

字符串操作符:

连接:无需符号,直接将两个字符串放在一起就可以了;

赋值操作符:

x=y:将y的值赋值给x;

x+=y:将x+y的结果赋值给x;

x-=y:将x-y的结果赋值给x;

x/=y:将x除以y的结果赋值给x;

x%=y:将x与y取模的结果赋值给x;

x^=y或x**=y:将x取y次方的结果赋值给x;

x++:将x+1的结果赋值给x;

x--:将x+1的结果赋值给x;

注:如果模式自身是=号,要写为/=/

比较操作符:

x<y:如果x小于y则为真;

x<=y:如果x小于等于y则为真;

x>y:如果x大于y则为真;

x>=y:如果x大于等于y则为真;

x==y:如果x等于y则为真;

x~y:模式匹配,x能够被y模式所匹配为真。

逻辑操作符:

x&&y:如果x为真则执行y;

x||y:如果x为假则执行y。

条件表达式:

selector ?if-ture-expression: if-false-expression

selector:条件

?if-ture-expression:如果为真则执行此表达式

:if-false-expression:否则执行此表达式

实例4:判断/etc/passwd文件中uid大于500则显示为"Common user",否则显示为“admin user":

5、模式

(1)正则表达式

格式:/PATTERN/

实例5:只显示/etc/passwd文件中存在root的行:

(2)表达式

以比较表达式居多,其结果为非0或非空字符串时满足条件,awk仅处理满足条件的行。

实例6:只显示uid大于等于500的行:

(3)特殊模式

BEGIN:在awk命令的program运行之前执行一次;

END:在awk命令的program运行之后执行一次。

实例6:显示/etc/passwd文件中以root开头的行的用户名在人、UID、shell信息,显示时以逗号分隔各字段,并在输出结果后打印“THE END”。

(5)空模式

用于匹配任意行。

时间: 2024-10-07 15:07:02

awk用法二的相关文章

awk用法(二) ---程序语言特性

1 内建变量(built-in) 常用 FS   输入字段分隔符  默认空白 由选项 -F 改变 或者重新赋值FS OFS  输出字段分隔符  默认空格,改变可以重新赋值 FILEWIDTHS   由空格隔开iade定义了每个字段的宽度,即取代FS 有字段长度来决定如何分割字段的 FNR 当前数据文件中的数据行数 NR 数据文件中的字段总数 NF 已处理的输入数据行数目 实例一 : FS与OFS的用法 [[email protected] ~]# echo  "data1,date2,date3

awk用法(二)

awk用法(二) 知识点一: 条件操作符,可以进行逻辑判断,举个栗子: #awk -F ':' '$1=="daemon"' 1.txt[daemon的双引号必须要加!] 知识点二: #awk -F ':' '$1=="root" || $6~'/sbin/'' 1.txt 其中,||表示或者,上述命令表达的内容是:打印出第一段是root的,或者第六段包含sbin的行. 知识点三: #awk -F ':' '$1=="root" &&am

awk用法小结(作者总结)

http://www.chinaunix.net/old_jh/24/691456.html http://wenku.baidu.com/view/ebac4fc658f5f61fb736664d.html awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止

awk用法(一)

awk用法(一) awk跟以前的sed命令,grep命令比较,它的优势在于它能够实现更多的功能. 比如awk可以实现分段,sed,grep是没法实现的 可以根据一个分隔符,将其分为一小段一小段,通过段来匹配. 知识点一: awk -F ':' '{print $3,$4}' 1.txt 显示指定段的匹配== awk -F: '{print $3,$4}' 1.txt -F ':'指定冒号分隔符,$3指定第三段 $3,$4中间的逗号,实际显示的是空格分割.[比较下面截图可看出] 知识点二: awk

awk用法(三)

awk用法(三) 知识点一: NR行数,NF段数 1.#awk -F ':' 'NR==10' 1.txt [行数是第10行的] 2.#awk -F ':' 'NR==10 {print $1,$7}' 1.txt  [只打印出第10行中的第1段和第七段] 3.#awk -F ':' '{if(NR==10) print $1,$7}' 1.txt #awk -F ':' 'OFS="#" {if(NR==10) print $1,$7}' 1.txt 以上三点截图如下: 4.#awk

1.12-linux三剑客之awk用法详解

1.12 linux三剑客之awk用法详解 内容: 1. awk执行过程 2. awk命令格式 3. awk用法 4. awk数组 第1章 awk执行过程 一直读取到文件的最后一行 第2章 awk '找谁{干啥}' '模式{动作}' 模式 pattern   动作  action 第3章 awk中什么可以作为模式 正则表达式 比较表达式    NR>10 范围模式 特殊模式BEGIN{}和END{} awk支持正则中的特殊符号 3.1 正则表达式 测试文件/server/files/reg.tx

AWK用法入门详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

学习笔记之awk用法

           文本处理三剑客之awk 1. 首先简要总结一些文本处理三剑客: grep族:文本过滤工具 sed:行编辑工具 2. 下面就来看看awk是什么? awk现在linux上用的是GNU awk即gawk ,现在centos系统上awk是gawk的一个符号链接文件.那么awk究竟在centos系统上是用来做什么的呢?awk就是一个报告生成器,格式化文本输出的工具. 3. 学习awk对有什么帮助呢? 学习awk我们可以轻松的对我们想要处理的文本进行查看等,方便我们解决问题. 4. g

awk之二、awk进阶

awk命令 awk [options] '/pattern{action}' options -F 工作遍历模式:迭代,循环 pattern: 定界:addr1,addr2 表达式:$3 > 500 /pattern/ 模式 BEGIN{}:在遍历操作开始之前执行一次 END{}:在遍历操作结束之后.命令退出自签执行一次 action:print,printf:用于能够实现格式化输出的工具 awk编程语言: 变量.数组 选择.循环 内置函数 自定义函数 awk的输出: 一.print print