首页 > 代码库 > awk指令的使用
awk指令的使用
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大
awk工作流程是这样的:读入有‘\n‘换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
# 取出两个文件中相同的部分
awk ‘NR==FNR{a[$0]=0;next}{if($0 in a){print $0}}‘ file1 file2
# 取出两个文件中不同的部分
awk ‘NR==FNR{a[$0]=0;next}{if(!($0 in a)){print $0}}‘ file1 file2
# 计算nginx日志访问排名前10位的ip
awk ‘{a[$1]++}END{for(i in a) print a[i],i}‘ access.log | sort -rn | head -10
#统计各个科目的数量
# cat test.txtxqq 语文 数学xq 英语 语文x 数学 美术awk ‘{for(i=2;i<=NF;i++) a[$i]++}END{for(i in a) print i,a[i]}‘ test.txt
# 获取系统ip
ifconfig eth0 | awk ‘NR==2{print $2}‘ | cut -d: -f2
awk指令的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。