Linux awk命令简单操作

AWK Command:
    一 : print
        print item1,item2,..........
        要点:
            1.各项目之间使用逗号隔开,而输入时则以空白字符分隔
            2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串
            3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print ""

        例子:
            1.awk ‘BEGIN { pring "line one\n line two \n"}‘
            2.awk -F: ‘{ print $1,$2}‘ /etc/passwd
    二:awk变量
        1.awk内置变量之记录变量
            a.FS : filed separator ,默认空白分隔符
            b.RS : Record separator , 默认是换行符
            c.OFS : output filed separator
            d.ORS : output Row Separator

                etc.
                    awk -F:
                    OFS="#"
                    FS=":"
        2.awk内置变量之数据变量:
            a.NF number field 每行的总数
                etc :
                    awk ‘{pring NF}‘ /etc/passwd
                    awk ‘{pring $NF}‘ /etc/passwdA # 获取最后字段
        3.awk模式
            1.正则表达式
                etc : awk -F: ‘/^r/{pring $1}‘ /etc/passwd
            2.表达式
                etc : awk -F: ‘$3+1>=500{print $1,$3}‘ /etc/passwd
            3.字段匹配 # 以bash的用户
                etc : awk -F: ‘$7~"bash$"{ print $1,$7}‘ /etc/passwd # ~(匹配) !~(不匹配)
            4.range,匹配范围
                etc : awk -F: ‘1,7{print $1,$3}‘ /et/passwod
            5.BEGIN/END 执行1次(bash没执行1行,就要执行其中的命令)
                etc awk -F: ‘BEGIN{print "start"}{print $1}END{print "end"}‘ /etc/passwd
            6.空模式:
                etc : awk -F:‘{print "process"}‘ /etc/passwd # 对每行处理
            7.Action模式
                1.if模式
                    etc : if(condition){then-body} else{else-body}
                            awk -F: ‘{if($1=="root")print $1,"Admin" else print $1,"Common User"}‘ /etc/passwd # 打印管理员
                            awk -F: ‘{if($1 == "root") printf "%-15s : %-15s \n" ,$1,"Admin";else printf "%-15s : %-15s\n" , $1,"CommonUser";}‘ /etc/passwd
                2.while
                    while(condition){suit}
                        etc : awk -F ‘{ i = 0;while(i < 4){ print $1; i++}}‘
                    for:
                        etc : awk -F: ‘{for(i = 0; i < length(NF);i++){print $1}}‘ /etc/passwd
                    switch: # switch(expression) { case value or /REGEXP/:..,..,default:....}
                    break 和 continue 用于case

                    next : 提前处理当前行,跳过
                        etc : awk -F: ‘{if($1%2 == 0) next;print $1}‘ /etc/passwd
                    awk数组:
                        awk[mon] = 1
                        awk[thu] = 2
                        etc : netstat -tan | awk ‘{STAT[$NF]++}END{for(i in STAT) {printf "%-15s : %s\n" , STAT[i] , i}}‘ #计算网络中lisiten数

            7.内置函数
                1.length(field) # 计算字段的长度

Linux awk命令简单操作,布布扣,bubuko.com

时间: 2024-10-05 11:29:06

Linux awk命令简单操作的相关文章

Linux的awk命令简单操作

awk是一个编程工具,他有完整的语法和命令.在bash中,awk更多的用于处理列内容(我是这么认为的,仅供参考) awk程序的执行逻辑 首先将文本内容读入到内存中,根据字段分隔符,在读取文本内容的过程中把读入的内容分段,第一个字段对应$1,第二个字段对应$2,依次类推,$0代表所有的字段. 注意: 1.在awk程序中,变量的使用不需要带$符号,因为$符号表示字段. 2.整个执行语句必须被'{}'包裹. 3.awk程序,在处理文本的时候是一次处理一行内容. 先简单演示一下 这个例子中,awk程序将

Linux awk 命令详解

简介linux awk命令详解 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的

linux awk命令详解(都是常用命令)

原文:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它

LINUX - awk命令之NF和$NF区别 (转)

NF和$NF 区别问答:(转)1.awk中$NF是什么意思?#pwd/usr/local/etc~# echo $PWD | awk -F/ '{print $NF}'etcNF代表:浏览记录的域的个数$NF代表:最后一个Field(列) 2.awk下面的变量NF和$NF有什么区别?{print NF} 也有{print $NF}前者是输出了域个数,后者是输出最后一个字段的内容如:~# echo $PWD | awk -F/ '{print $NF}' LINUX - awk命令之NF和$NF区

linux awk命令分析http server访问日志

摘抄自http://www.ibm.com/developerworks/ AWK 简介 AWK 是一种"样式扫描和处理语言".它允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据.对输入执行计算以及生成报表.它的名称取自于它的创始人 Alfred Aho. Peter Weinberger 和 Brian Kernighan 姓氏的首个字母. 本文论述的 awk 命令主要指 Linux 操作系统中广泛包含的内置程序 /bin/gawk,它是 Unix awk 程序的 G

linux常用命令简单介绍(netstat,awk,top,tail,head,less,more,cat,nl)

1.netstat netstat -tnl | grep 443 (查看443端口是否被占用) root用户,用netstat -pnl | grep 443 (还可显示出占用本机443端口的进程PID). -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字.直接使用IP地址,而不通过域名服务器. -l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立

Linux命令简单操作

一. awk 命令格式: awk 'BEGIN{commands} pattern {commands} END{commands}'file 工作方式: 1.执行BEGIN{commands}语句块中语句,可选的语句块 2.从文件或者stdin中读取一行,然后执行{commands},重复这个过程,直到文件全部被读取完 3.当读至输入流末尾是,执行END{commands}语句块 特殊变量: FILENAME:awk浏览的文件名 NR:记录数量,执行过程中对应于当前行号 NF:字段数量,执行过

Linux awk命令

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域.默认域分隔符是"空白键" 或 "[tab]键" 示例:#cat /etc/passwd |awk 

linux awk命令详解(转)

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK