欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AWK实用基础

程序员文章站 2024-02-26 14:31:22
...

shell编程中的awk命令非常强大,里面可以加入循环、判断等,因此也被称为awk编程。

一般情况下awk更多的是获取指定列内容,格式化输出等。

格式如下:

awk ‘条件1 {动作1} 条件2 {动作2} ……’ 文件名

awk ‘/正则表达式/’
条件相当于输入,没有条件就会把整个文件内容执行后面的动作。

动作相当于输出,流程处理后格式化输出。

1. 输出列

$num

比如$1代表第一列;$0代表整行记录;$4代表第四列

awk ‘{print “第二列为:” $2}’ file.txt

2. 动作部分

print  会在每个记录执行完加入换行符\n

printf 需要手动添加格式

3. 条件部分

-BEGIN

‘BEGIN {print “先执行这个!!”} {print $1}'    

表示在所有数据执行之前先执行BEGIN后面{}里面的动作

输出为:先执行这个!!

        第一列内容

-END

在所有数据执行之后,在执行一次END之后的{}动作

‘END {print “最后执行这个!!”} {print $1}'    
输出为:第一列内容

        最后执行这个!!

-比较

可以加入一个比较表达式(-F可以设置分隔符)

awk -F: 'NR<=3 {print $1}' /etc/passwd
#输出行号小于3的第二列内容 设置分隔符为:

root
bin
daemon

-常用内置变量

NR  行号

NF  列号

FILENAME  文件名

ARGV  命令数组(就是本次awk命令作为一行记录存在数组里,分隔符为空格)

$NF  最后一列内容

$0   整行记录

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关标签: shell命令