Linu awk命令

简介:

awk命令是Linux的文本统计、分析工具。说白话点,就是,awk是参数为文本文件的一行字符串的Linux命令行函数。

常用知识点:

awk函数有一些内置的变量:

  • $1 $后跟一个阿拉伯数字,表示入参字符串中,默认以tab分割的第n段字符串。
    如:a [tab] b [tab] c [tab] d 这个字符串中, $1表示 a 这段字符串。
    这个知识点也是awk命令最常用、最重要的一个姿势,哦不,知识。
  • -F。字符串分割默认以tab符号分割,可以通过 -F '【字符串】' 命令来指定。
    如:-F ':' 就是以冒号进行的分割
  • ARGC 命令行参数个数
    ARGV 命令行参数排列
    ENVIRON 支持队列中系统环境变量的使用
    FILENAME awk浏览的文件名
    FNR 浏览文件的记录数
    FS 设置输入域分隔符,等价于命令行 -F选项
    NF 浏览记录的域的个数
    NR 已读的记录数
    OFS 输出域分隔符
    ORS 输出记录分隔符
    RS 控制记录分隔符

awk命令使用:

这里才是awk的基础使用说明
awk '模式 动作' 文件名 或者通过管道命令|awk命令传入数据,其中,模式跟动作不是必须的。

模式:

所谓模式就是正则表达式,//这两个符号之间的内容就是正则表达式内容,
如: awk '/root/' filename 就是匹配行中有root字符串的行

命令:

命令就是个比较复杂的内容块了。awk命令的主要的功能就体现在这。
直白点儿说,命令块就是由{}花括号包裹住的代码,代码语法参考c/c++即可。
如:
输出文件内第一行内容
awk '{if(NR ==1) {print $0}}' filename
那上面这段命令举例,一个{}内的,就是一段动作。动作其实可以有多个,当有多个动作时,其运行逻辑就是对输入进来的一行字符串,挨个运行多条动作。
如,在上面的基础上,我们再把第一段字符串输出出来
awk '{if(NR == 1) {print $0}} {print $1}' filename
上面这条命令就有两段动作,分别是:
{if(NR==1){print $0}{print $1}
当然,既然动作就是段代码,上面代码块内当然可以不止一条代码语句,所以,上面这条等价下面:
{if(NR==1){print $0; print $1}}
需要注意的是,命令之间要用;分隔开。

未完待续:

当然,awk命令还有模式方面的知识点以及比较重要的BEGIN END等常用知识点,后面再讲啦~ 啦啦啦~

你可能感兴趣的:(Linu awk命令)