一、awk 介绍
awk 语言的基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk 抽取信息后,进行其他文本操作,它是一个从大文本文件中抽取、解剖数据的利器,本文主要介绍awk怎样从文本文件和字符串中抽取解剖信息。
二、awk 调用方式
1、命令行方式:awk [-F delimiter] ‘commond’ input_file
-F 是可选的,delimiter是分隔符,可以是字符串;
如果设置了- F选项,则awk每次读一条记录或一行,并使用指定的分隔符分隔指定域,但如果未设置- F选项,awk假定空格为域分隔符,并保持这个设置直到发现一新行。当新行出现时,awk命令获悉已读完整条记录,然后在下一个记录启动读命令,这个读进程将持续到文件尾或文件不再存在。
2、文件调用: awk -f awk_script_file input_file
-f 选项指明awk脚本在awk_script_file文件中,input_file是输入的字符串文件
本文主要介绍第一种方式
三、awk 语句的执行
awk语句都是由模式和动作组成,在一个awk脚本中可能有许多语句。模式部分决定动作语句何时触发及触发事件。处理即对数据进行的操作。如果省略模式部分,动作将时刻保持执行状态。模式可以是任何条件语句或复合语句或正则表达式,以BEGIN开始 END结束。
动作大多数用来打印,使用{}括起来,如果不指明动作,awk 会打印浏览出的文本内容。
四、awk 实例
1、awk ‘{print 0}’ test.txt
0}’ test.txt
0 表示所有域,这句表示打印所有的text.txt文件中的内容。
2、awk ‘{print
1,
1
,
6}’ text.txt
以空格为分隔符,打印每一行的第一列和第六列内容
3、awk 条件操作符
awk ‘
1 /test/′text.txt打印按照空格分隔后
1
/
t
e
s
t
/
′
t
e
x
t
.
t
x
t
打
印
按
照
空
格
分
隔
后
1匹配到text的行
awk ‘
3=="X"print$1′text.txt打印按照空格分隔后,
3
=="
X
"
p
r
i
n
t
$
1
′
t
e
x
t
.
t
x
t
打
印
按
照
空
格
分
隔
后
,
3==”X” 的
1awk‘if($1>$2)print$3′text.txt打印按照空格分隔后,
1
a
w
k
‘
i
f
(
$
1
>
$
2
)
p
r
i
n
t
$
3
′
t
e
x
t
.
t
x
t
打
印
按
照
空
格
分
隔
后
,
1>
2的
2
的
3
4、awk 内置变量
awk ‘END {print NR}’ installService.sh 打印记录数
5、awk 操作符
awk ‘{id=
1;name=
1
;
n
a
m
e
=
2; if(name==”richeldu”) print name ” id is ” id}’ text.txt
注意访问变量没有$
6、内置字符串函数
awk ‘gsub(“richel”, 123) {print $0}’ text.txt
awk ‘BEGIN {print length(“111”)}’
awk ‘BEGIN { print split(“richel#du”, arr, “#”)}’
五、总结
本文简单介绍了awk的用法,以及常见的函数,实际上awk 结合grep sed 将会发出更强大的威力,欲知详情如何,请看下次分享
awk 学习分享
最新推荐文章于 2021-05-26 02:23:22 发布