内容简介:awk - 快闪
内建变量
- NR:已输入记录的条数。 (行数量)
- FNR: 当前记录数,与NR不同的是,这个值会是各个文件自己的行号。
- NF:当前记录中域的个数。记录中最后一个域可以以$NF的方式引用。 (每一行记录个数)
- FILENAME:当前输入文件的文件名。
- FS:“域分隔符”,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。
- RS:当前的“记录分隔符”。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。
- OFS:“输出域分隔符”,即分隔print命令的参数的符号。其默认值为空格。
- ORS:“输出记录分隔符”,即每个print命令之间的符号。其默认值为换行符。
- OFMT:“输出数字格式”(Format for numeric output),其默认值为"%.6g"。
格式化输出
awk '{ printf "%+8s\n", $1 }' test.log
或
awk '$5 ~ /S|D/ { print $5 }' test.txt
取反
awk '$5 !~ /S/ { print $5 }' test.txt
awk '/S/ { print $5 }' test.txt
awk '!/S/ { print $5 }' test.txt
过滤记录
awk '$3 == 0' test.log
awk '$2 > 3 || $5 == "DGRAM" { printf "%2s %s\n", NR, $6 }' test.txt
指定分割符
awk 'BEGIN { fS=":" } { print $1 }' test.log
awk -F: '{ print $1 }' test.log
以上两种方式等价
指定多个分隔符
awk -F '[;:]'
指定输出分隔符
awk -F: '{print $1,$3,$6}' OFS="\t" /etc/passwd
字符串匹配
awk '$5 ~ /S/ { print $5 }' test.txt
awk脚本
#!/usr/bin/awk -f
# -f参数告诉awk将该文件作为awk的程序文件,然后即可运行该程序。
# awk函数
function plus(a, b) {
return a + b
}
BEGIN {
# 函数调用
print plus(1, 2)
}
0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
产品心经:产品经理应该知道的60件事(第2版)
闫荣 / 机械工业出版社 / 2016-4 / 69.00
本书第一版出版后广获好评,应广大读者要求,作者把自己在实践中新近总结的10个关于产品的最佳实践融入到了这本新书中。这"10件事"侧重于深挖产品需求和产品疯传背后的秘密,配合之前的"50件事",不仅能帮产品经理打造出让用户尖叫并疯传的产品,还能帮助产品经理迅速全方位提升自己的能力。 本书作者有超过10年的产品工作经验,在互联网产品领域公认的大咖,这本书从产品经理核心素养、产品认知、战略与规划、......一起来看看 《产品心经:产品经理应该知道的60件事(第2版)》 这本书的介绍吧!