该工具的作用是将文本文件逐行读入,然后对读入文本进行切片(默认用空格分隔),然后再读入下一行,已提供使用。是一个格式化报告生成工具,然后用来处理文本。
当前,linux上使用的awk,是gawk(开源awk),简写为awk。
用法:
#awk [options] ‘script‘ file,file2,… #awk [options] ‘PATTERN {action }‘ filelist
引用的话,每一行从$1开始,$0为当前行,以换行符作为行结束
常用为:awk ‘{print $1}‘ 文件
常用options:
-F : 指定字段分隔符 awk -F : ‘{print $1}‘ /etc/passwd
-v :给一个变量赋初始值
print 函数,打印内容,自带换行符
printf 函数,格式化打印内容,不带换行符,需要如下的格式:
awk ‘{printf “格式” $1}‘ 文件
格式如下:
以%开头,后跟一个字符
%c 显示字符的ASCII码 %d,%i:十进制数 %e,%E 科学计数法显示数值 %g,%G 科学计数法的格式或浮点数的格式显示数值 %f 显示浮点数 %u 无符号整数 %% 显示%自身 %s 显示字符串
修饰符
N ,如%10s,当前字符串占用10格,不够补空 -:左对齐,默认右对齐 +:显示数值符号
例子
linux1:/home/test #awk ‘{printf "%-15s %i\n",$1,$2}‘ 1 welcome 0 hello 0
输出重定向
Print items > output-file
Print items >> output-file
Print items | command
特殊文件描述符
/dev/stdin:标准输入
/dev/stdout标准输出
/dev/stderr:错误输出
/dev/fd/N 某个特定文件描述符,如/dev/stdin就相当于/dev/fd/0
例如:
linux1:/home # awk -F: ‘{printf "%-15s %i\n",$1,$3>"/dev/stderr"}‘ /etc/passwd root 0 bin 1 daemon 2 lp 4 mail 8 games 12 wwwrun 30 ftp 40 nobody 65534
本文出自 “测试的律动” 博客,请务必保留此出处http://fociceo.blog.51cto.com/2480/1664449
原文地址:http://fociceo.blog.51cto.com/2480/1664449