awk命令例子详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk命令例子详解相关的知识,希望对你有一定的参考价值。

awk -F: ‘{print "Number of dields: "NF}‘ passwd        字段分隔符设为冒号,所以每条记录的字段数变成7;

awk  ‘{print "Number of dields: "NF}‘ passwd          字段分隔符设为空格,所以每条记录的字段数不一致;

awk -F:  ‘{print $1}‘ passwd                  以冒号为分隔符打印出文本第一字段;

awk ‘{print $1}‘ passwd                   已空格符为分隔符打印出文本第一字段;

awk ‘/root/{print $0}‘ passwd                如果记录模式中包含root,则打印该记录($0);

awk ‘$1 ~ /nologin$/{print "The price is $" $1 "."}‘ passwd   如果第一个字段以nologin结尾,则打印双引号之间的字符串、第一个字段($1)、和只含一个句点的字符;

awk ‘$1 ~ /[a-z][a-z]/{print $1}‘ passwd            第一个字段以两个小写字母结尾的,则打印该字段;

awk ‘$1 ~ /^root/{print $1 "is a super man."}‘ passwd     若第一个字段以root开头的,则打印该字段并在后面接上字符串“is a super man.”,注意若要打印空格则应该把包含在字符串中;

awk ‘$1 !~ /e/{print $1,$2} ‘ passwd            如果第一个字段中不含模式e则打印该字段;

awk ‘$1 ~ /\.[7-9]+/‘ passwd                 如果某条记录的第一个字段包含一个句点,而且句点后是一个或多个7-9之间的数字,就打印该记录;

awk ‘/^[rv]/{print $1}‘ passwd               打印以r或v开头的模式中的第一字段;

awk ‘/e/‘ passwd                     打印记录中有e的就打印整条记录;

awk ‘/root/{print $1,"+++++",$2}‘ passwd           如果记录中包含root则打印第一字段 +++++ 第二字段;

awk ‘{print "Number of fileds: "  NF}‘ passwd        打印记录中的字段值;

 awk ‘{print $0}‘ passwd                 $0是打印当前的记录;

awk ‘{print $2 $1}‘  passwd                第二字段与第一字段之间不用空格进行隔开;

awk ‘{print $2,$1}‘ passwd                 第二字段与第一字段之间用空格进行隔开;

awk ‘/^(root|sync)/‘ passwd                打印所有以root和sync开头的行;

awk ‘/^root/‘ passwd                   打印所有以root开头的行;

awk ‘root/’  passwd                    打印所有包含root的行;

gawk ‘/[[:lower:]]+n[[:space:]]+[[:digit:]]/‘ passwd        gawk搜索一个或多个小写字母后面跟一个n后面再跟一个或多个空格然后是一个数字的模式,awk并不能识别POSIX增加的括号字符类;

awk ‘$1 !~ /nologin$/‘ passwd              显示所有第一个字段非nologin结尾的;

awk ‘$1 ~ /[Ss]hd/‘ passwd                显示所有在第一字段匹配到Shd或者shd的行;

nawk ‘/^[A-Z][a-z]+ /‘ passwd                 匹配开头以一个大写字母跟一个或多个小写字母,再跟一个空格的行(注意awk和gawk在此命令中是不区分大小写的,nawk是区分大小写的);

awk ‘/^root/‘ passwd                   匹配以root开头的行;

awk ‘$1 < 4000‘ passwd

awk ‘$0 ~ /root/{print $0}‘ passwd

awk ‘/root/{print "Hello there, "$1}‘ passwd

 awk -F: ‘/root/{print $0}‘ passwd 

awk -F: ‘/root/{print $1,$2,$3,$4}‘ passwd 

awk -F‘[ :\t]‘ ‘{print $1,$2,$3}‘ passwd

awk -F: ‘/root/{print $1,$2}‘ passwd

awk ‘{print NR,$1,$2}‘ passwd

awk ‘{print $0,NF}‘ passwd

awk ‘{print NR,$0}‘ passwd 

nawk ‘{printf "The name is: %-15s ID is %8d\n",$1,$2}‘ passwd    要打印的字符串放在两个引号之间。第一个格式说明符是%-15s,他对应的参数是$1,紧挨着控制穿的右半边引号后面的那个逗号。百分号引出格式说明;短划线表示左对齐,15s表示占15格的字符串。这条命令用来打印一个左对齐、占15格字符串,后面跟着字符串的ID和一个整数;格式%8d表示在字符串的这个位置打印$2的十进制整数值。这个整数占8格,向右对齐。

echo "UNIX" | awk ‘{printf "|%15s|\n",$1}‘       右对齐

echo "UNIX" | awk ‘{printf "|%-15s|\n",$1}‘       左对齐

awk ‘BEGIN{OFMT="%.2f";print 1.23456789,12E-2}‘        设置变量OFMT在打印浮点数时,只打印小数部分的前两位。百分号表示接下来要定义格式;

awk ‘/root/{print "\t\tHave a nice day, "$1,$2 "!"}‘ passwd       在awk中!不用进行转义,nawk中需要进行转义;

nawk ‘/root/{print "\t\tHave a nice day, "$1,$2 "\!"}‘ passwd

date | awk ‘{print "Month: " $2 "\nYear: ",$6}‘

 

以上是关于awk命令例子详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux入门系列——awk命令详解

linux awk命令详解

Linux awk 命令详解(二) if 分支 数组

linux awk命令详解

linux awk命令详解(转)

awk命令详解二