awk工具的使用
发布日期:2021-09-01 18:44:28 浏览次数:1 分类:技术文章

本文共 1384 字,大约阅读时间需要 4 分钟。

awk工具的使用

awk也是流式编辑器,针对文档中的行来操作,一行 一行的执行。
awk工具的使用

截取文档中的某个段:

head -n2 test.txt | awk -F ' : ' '{print $1}'
本例中,-F 选项的作用是指定分隔符。print为打印的动作,用来打印某个字段,
$1为第一个字段,$2为第二个字段,以此类推。$0表示整行。
head -n2 test.txt |awk -F ' : ' ' print $0}'
注意awk的格式,-F后面紧跟单引号,单引号里面是分隔符。print的动作要用{}括起来。否则会报错。print还可以打印自定义内容,但自定义的内容要用双引号括起来,如下所示:
head -n2 test.txt | awk -F ' : ' '{print $1 "#" $2 "#" $3 "#" $4}'

匹配字符或者字符串

awk '/oo/' test.txt

awk -F ' : ' '$1 ~/oo/' test.txt

awk -F ' : ' ' /root/ {print $1,$3} /test/ {print $1,$3}' test.txt

条件操作符

awk -F ' : ' '$3=="o" ' /etc/passwd #不加双引号则会认为是数字

awk -F ' : ' '$3>=500' /etc/passwd #把uid大于等于500的行打印出来

awk -F ' : ' '$3<$4' /etc/passwd #两个字段之间进行逻辑比较

awk -F ' : ' '$>"5" && $3<"7" /etc/passwd

awk -F ' : ' ' $>1000 || $3=="/bin/bash" ' /etc/passwd

awk的内置变量

awk常用变量有OFS、NF和NR,OFS和-F选项有类似的功能,也是用来定义分隔符的,但是它是在输出的时候定义,NF表示用分隔符分隔后一共有多少段,NR表示行号。
head -5 /etc/passwd | awk -F ' : ' '{OFS="#"} {print $1,$3,$4}'

awk -F ' : ' '{OFS="#“}{if ($3>1000) {print $1,$2,$3,$4}}' /etc/passwd

head -n3 /etc/passwd | awk -F ' : ' '{print NF}'

head -n3 /etc/passwd | awk -F ' : ' '{print $NF}'

head -n3 /etc/passwd | awk -F ' : ' '{print NR}'

awk 'NR>40' /etc/passwd

awk -F ' : ' 'NR<20 && $1 ~ /roo/' /etc/passwd

awk中的数学运算

head -n 3 /etc/passwd | awk -F ' : ' '$1="root" '

head -n2 /etc/passwd

awk -F ' : ' '{(tot=tot+$3)}; END {print $0}}' /etc/passwd

转载于:https://blog.51cto.com/12058686/2062286

转载地址:https://blog.csdn.net/weixin_34124651/article/details/91666843 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:iptables规则备份和恢复 及firewalld用法
下一篇:socket缓冲区以及壅塞形式

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.36.148.219]2022年07月30日 18时13分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章