云计算之awk命令

awk命令在脚本中经常使用,配合着使用,awk会非常强大,今天只做awk的初级整理

awk编程讲解
1.概念:是一种处理文本文件的语言,是强大的文本分析工具
2.语法:
awk [选项参数] '脚本指令' var=value files 
awk [选项参数] -f 脚本指令文件 var=value files
3.选项参数介绍:
-F  指定文件内容分隔符,默认是空格或换行
-v 赋值一个用户定义的变量
-f 从脚本文件中打开awk命令
4.运算符:
a.赋值 = += -= *= /= %=
b.条件 a?b:c
c.逻辑或/与  || &&
d.匹配正则  ~  ~!
e.关系运算符 < <= > >= != ==
f.自增、子减 ++ --
5.内置变量
NF 字段分隔符
NR 行号
NF 列数
RS 记录分隔符(默认是一个换行符)
IGNORECASE 大小写 1:忽略,0:区分大小写
length 每行字符个数[长度]
6.基本用法:
a:awk '{...}' 文件  #行匹配语句,awk '' 只能用单引号
awk '{printf "%-10s %-20s $s\n",$1,$3,$5}' log.txt
b:awk -F   #-F相当于内置变量FS,指定分隔符
awk -F: '{print $1}' /etc/passwd
c:awk -v   #-v设置变量
awk -v a=4 '{print $1,$1+a}' log.txt
d:awk -f awk脚本 文件名
awk -f cal.awk log.txt
7.其他实例
1.输出helloworld
awk 'BEGIN{print "hello world"}'
2.计算文件大小
ls -l *.txt | awk '{sum+=$6} END {print sum}'
3.从文件中找出长度大于80的行
awk 'length>80' log.txt
4.输出99乘法口诀表

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s",i,NR,i*NR,i==NR?"\n":"\t")}

以上只是awk的简单应用,awk非常强大,后期深入整理

猜你喜欢

转载自blog.csdn.net/mx_steve/article/details/80463074
今日推荐