awk -f program.file 功能使用


一、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 是能行得通的

好了,沒有太大需求,先這樣吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM