美文网首页我用 LinuxLinux学习之路技术文
linux系列_linux命令系列一 —— awk命令

linux系列_linux命令系列一 —— awk命令

作者: YONGSSU的技术站点 | 来源:发表于2016-09-03 10:32 被阅读136次

awk命令

#命令行方式
awk [-F field-separator] 'commands' input-file(s)
#shell脚本,将所有的awk命令插入一个文件,并使awk执行
首行添加#!/bin/awk
#j将所有的awk命令插入一个单独的文件,让后调用
awk -f awk-script-file input-file(s)

内置变量

ARGC               命令行参数个数ARGV               命令行参数排列ENVIRON            支持队列中系统环境变量的使用FILENAME           awk浏览的文件名FNR                浏览文件的记录数FS                 设置输入域分隔符,等价于命令行 -F选项NF                 浏览记录的域的个数NR                 已读的记录数OFS                输出域分隔符ORS                输出记录分隔符RS                 控制记录分隔符

awk工作流程

  • 先执行BEGIN,然后读取文件,读入/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0表示所有域,$1表示第一个域,$n表示第n个域,所有开始执行模式所对应的动作的action。接着开始读第二条记录。直到所有的记录都读完,最后执行END操作

awk编程

简单实例

# 打印第一列
#cat /etc/passwd |awk -F ':' '{print $1}' 
# 打印第一列和第7列
#cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
#统计/etc/passwd的账户人数
awk '{count++;print $0;} END{print "user count is ", count}' /etc/passwd
或者
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
#统计某个文件夹下的文件占用的字节数
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
#以M为单位ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}'

条件语句

ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' [end]size is  8.22339 M

循环语句and数组

awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd

相关文章

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • linux系列_linux命令系列一 —— awk命令

    awk命令 内置变量 awk工作流程 先执行BEGIN,然后读取文件,读入/n换行符分割的一条记录,然后将记录按指...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • Linux的awk命令

    Linux的awk命令 众所周知awk命令是Linux一个非常重要又难以掌握的命令,下面对这个命令进行一个详细的说...

  • Linux | awk

    参考:http://www.runoob.com/linux/linux-comm-awk.html awk命令的...

  • Linux 学习笔记(十四):Linux 正则表达式基础

    grep 命令 作为linux中最为常用的三大文本(awk(Linux awk教程),sed(Linux sed教...

  • Linux 常用命令汇总

    转载自伯乐在线每天一个 Linux 命令系列 每天一个 Linux 命令(1):ls命令 每天一个 Linux 命...

  • Linux 常用命令总结

    linux 命令速查手册linux 常用操作命令 sed 简明教程 awk 简明教程 常用命令 ls ...

  • 自动化脚本实践(Shell + Expect)

    Linux Shell脚本入门: Linux awk 命令 | 菜鸟教程 Shell 教程 | 菜鸟教程 lin...

  • 技术书单推荐

    Linux系列 《Linux命令行与shell脚本编程大全》评分:★★★★★适用范围:Linux入门评价:我看过最...

网友评论

    本文标题:linux系列_linux命令系列一 —— awk命令

    本文链接:https://www.haomeiwen.com/subject/mbmkettx.html