Linux三剑客——awk命令

awk命令

  1. awk命令用于Linux下的文本处理。数据可以来自文件或标准输入,支持正则表达式等功能,是Linux下强大的文本处理工具。

    示例

    #$1与$3相连输出,不分隔
    [[email protected] ~]# awk -F ":" ‘{print $1 $3}‘ /etc/passwd
    #多了一个逗号,$1与$3使用空格分隔
    [[email protected] ~]# awk -F ":" ‘{print $1,$3}‘ /etc/passwd
    #显示每行有多少字段
    [[email protected] ~]# awk -F: ‘{print NF}‘ /etc/passwd
    #将每行第NF个字段的值打印出来
    [[email protected] ~]# awk -F: ‘{print $NF}‘ /etc/passwd
    #依次打印行号,字段数,最后字段值,制表符,每行内容
    [[email protected] ~]# awk -F: ‘{print NR,NF,$NF,"\t",$0}‘ /etc/passwd
    #显示第5行
    [[email protected] ~]# awk -F: ‘NR==5{print}‘ /etc/passwd
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    显示第5行和第6行
    [[email protected] ~]# awk -F: ‘NR==5 || NR==6{print}‘ /etc/passwd
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    #纯字符匹配
    [[email protected] ~]# awk ‘/mysql/‘ /etc/passwd
    mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
    #不匹配mysql的行
    [[email protected] ~]# awk ‘!/mysql/‘ /etc/passwd
    #匹配区间
    [[email protected] ~]# awk -F: ‘/mail/,/mysql/{print}‘ /etc/passwd
    #匹配包含27为数字开头的行,如27,277,2777...
    [[email protected] ~]# awk -F: ‘/[2][7][7]*/{print $0}‘ /etc/passwd
    #匹配指定内容才显示
    [[email protected] ~]# awk -F: ‘$1~/mail/{print $1}‘ /etc/passwd
    mail

    参数说明

    -F指定分隔符
    //匹配代码块
    !//纯字符不匹配
    ~//字段值匹配
    !~//字段值不匹配
    ~/a1|a2/字段值匹配a1或a2
    条件表达式 == != > >=
    逻辑运算符 && ||

原文地址:https://blog.51cto.com/9103824/2378475

时间: 2024-10-07 08:46:43

Linux三剑客——awk命令的相关文章

Linux三剑客——awk

Linux三剑客--awk DKing~共享 1.1 awk执行过程 awk读入第一行内容 判断是否符合模式中的条件NR>=2(是否让你进入大门) 如果匹配则执行对应的动作{print $0} 如果不匹配条件,继续读取下一行 继续读取下一行 重复以上过程,直到读取到最后一行(EOF:end of field) 1.2 记录和字段 record    表示记录.行           记录相当于行 field       表示区域.字段       字段相当于列 1.2.1 记录(行) awk默认

Linux三剑客——sed命令简述

Linux三剑客--sed13.1 sed介绍 sed--流编辑器(stream editor) sed功能与版本:处理文本文件,日志,配置文件增加.删除.修改.查询sed --version 语法格式:sed [选项] [sed指令] [输入文件]sed -i.bak 's#boy#girl#g' oldboy.txt-i sed命令的参数s sed命令g 小尾巴/修饰 sed命令执行过程13.2 sed命令功能示例 等号'='显示行号 sed = person.txt 单行-输入行号即可 s

Linux三剑客-常用命令

Linux三剑客:grep, awk, sed. Linux命令搜索及查看-> 点击这里. grep 命令 :强大的文本'搜索'工具 grep -n 'word' file_name   在file_name文件中找到word所在的所有行并显示.-n 为显示行号 grep 'w[ea]ll' file_name     在file_name文件中找到wall 或者是well 所在的所有行并显示 grep 'w[^e]ll' file_name     在file_name文件中找到"非we

Linux下awk命令详解

grep 或 egrep 或awk 过滤两个或多个关键词: grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行 egrep '123|abc' filename //用egrep同样可以实现 awk '/123|abc/' filename // awk 的实现方式 假如某个广告点击数据记录在文件里面,文件中每一行数据由'时间','uid'两个字段组成,要求每分钟统计某个uid带来的点击量并计入数据库,可以用shell来实现该功

linux系统awk命令精解

AWK是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符. awk与sed和grep共称linux系统三剑客 awk不仅是系统命令也是一种编程语言,它支持条件判断,数组,循环等功能 awk -F 是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

Linux的awk命令详解

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

linux之awk命令获取最后一列

统计分析中经常用的awk命令,其中用的最多的还是切分 cat  test | awk -F',' '{print $1,$2} 能够很好的将记录按照需要切分开, 但是如何获取最后一列呢? 可以使用awk -F',' '{print $NF}' 来获取,mark一下 原文地址:https://www.cnblogs.com/weifeng1463/p/9857925.html

linux之awk命令

一.awk的内置参数 $0:表示整个当前行 $1:每行第一个字段 $2:每行第二个字段 $n:每行第n个字段 awk的参数:分隔符 -F separator 设定分隔符(默认为空格) 打印单个字段: awk -F ':' '{print $3}'   /etc/passwd 打印多个字段: awk -F ':' '{print $1,$3}'  /etc/passwd awk -F ':' '{printf("User:%s      UID:%s\n", $1,$3)}'  /etc