awk引用外部變量的方法
用awk 有 以下幾種方法去調用變量:
www.2cto.com
1.
awk '{print a, b}' a=111 b=222 yourfile
注意, 變量位置要在 file 名之前, 否則就不能調用. 例如:
awk '{print a, b}' a=111 file1 b=222 file2
file1 不能調用 b=222.
還有, 於 BEGIN{}中是不能調用這些的variable. 要用之後所講的第二種方法才可解決.
www.2cto.com
2. awk –v a=111 –v b=222 ‘{print a,b}’ yourfile
注意, 對每一個變量加一個 –v 作傳遞.
3. awk ‘{print “’”$LOGNAME”’”}’ yourfile
如果想調用environment variable, 要用以上的方式調用, 方法是:
(我加上空格讓大家容易明白)
“ ‘ “ $LOGNAME “ ‘ “
實例:
#!/bin/bash
#此作用列出文件名稱中以日期開頭,並且小於某個日期的文件名稱。一般可以用於刪除一些日志文件的篩選
curdate=20110715
Filename=`ls -l|awk -v cdate=$curdate 'NR!=1 && $8<cdate {print $8}'`
echo $Filename