一、awk -f program.file 功能使用
一直没有使用过awk的-f功能,感觉鸡肋,不是很实用,更多的是因为没有需求的原因
下面介绍下awk -f的使用方法
awk可以指定默认的文件路径,使用AWKPATH这个变量,然后source即可
[root@nlocalhost ~]# tail -2 /etc/profile
export AWKPATH=/usr/local/lib:/tmp
[root@nlocalhost ~]# echo $AWKPATH
/usr/local/lib:/tmp
[root@nlocalhost ~]# cat /usr/local/lib/t.awk
#!/bin/awk
BEGIN {
print 111
}
[root@nlocalhost ~]# cat /tmp/f.awk
#!/bin/awk
BEGIN {print 333}
- awk -f使用必须使用全名称,若简写为awk -f f 则会报警
awk: fatal: can't open source file `f' for reading (No such file or directory)
六神在群里发的截图并没有说一定要使用全名,但我使用的版本需要全名
GNU bash, version 4.1.2(2)-release-(x86_64-redhat-linux-gnu) | GNU Awk 3.1.7
[root@nlocalhost ~]# echo | awk -f t.awk
111
[root@nlocalhost ~]# echo | awk -f f.awk
333
[root@nlocalhost ~]# awk -f f.awk
333
[root@nlocalhost ~]# awk -f /tmp/f.awk
333
当然这里是用绝对路径也是可以的,虽然这样设置AWKPATH就没有意义了
二、awk的另一种执行方式
[root@nlocalhost ~]# vim awk.awk
#!/usr/bin/awk -f
BEGIN { printf "%s\n","Writing my first awk executable script!" }
[root@nlocalhost ~]# chmod +x awk.awk
[root@nlocalhost ~]# ./awk.awk
Writing my first awk executable script!
经过测试发现这样也行,似乎又回到原点。。。跟上面的一样了
[root@nlocalhost ~]# awk -f awk.awk
Writing my first awk executable script!
awk脚本的第一行到底应该写什么,我也没搞懂,但写#!/bin/awk 是能行得通的
好了,没有太大需求,先这样吧