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 整行记录