我的所有代碼都失敗了。他們應打印 「他」, 「你好」 和 「5 \ N 3」,分別爲:簡單的AWK示例入門在哪裏?
awk -v e='he' {print $e} // not working, why?
awk NF { print hello }
awk { print ARGV[5,3] }
是否有關於AWK一些簡單的例子嗎?
我的所有代碼都失敗了。他們應打印 「他」, 「你好」 和 「5 \ N 3」,分別爲:簡單的AWK示例入門在哪裏?
awk -v e='he' {print $e} // not working, why?
awk NF { print hello }
awk { print ARGV[5,3] }
是否有關於AWK一些簡單的例子嗎?
對於第一個,你不使用$爲內部AWK變量,試試這個來代替:
fury> echo | awk -v e='he' '{print e}'
he
對於第二個,你的病情NF意味着NF = 0,因此將只打印非!空行:
fury> echo | awk 'NF {print "hello"}'
fury> echo "7 8" | awk 'NF {print "hello"}'
hello
我從來沒有見過你的第三個語法,ARGV是單維數組,所以你可以使用:
fury> awk 'BEGIN {print ARGV[5]}' 1 2 3 4 5 6 7
5
fury> awk 'BEGIN {print ARGV[5] "\n" ARGV[3]}' 1 2 3 4 5 6 7
5
3
注意我爲第三個塊使用了BEGIN塊,否則它會嘗試打開並處理1,2,3 ...文件。
嘗試:
echo "hello" | awk ' {print $0} '
echo "hello" | awk ' {print $1} '
注意$ 0返回全程記錄和$ 1只有第一項; awk將其計數器設置爲1.所以
echo "hello1 hello2 hello3" | awk ' {print $0} '
返回hello1 hello2 hello3。雖然
echo "hello1 hello2 hello3" | awk ' {print $3} '
將返回hello3
我喜歡這個awk tutorial.
首先,基本的shell腳本理智:
注那個腳本是單個參數 - 或「-f file
」的文件名。
awk腳本是一系列'<pattern> <action>
'對。爲了清晰起見,這一行動被包含在大括號'{}
'中,並且再次表示理智。
由於大同表示,第一個例子應該是:
awk -v -e e='he' '{ print e }'
第二個例子是不可思議的 - 你可能是指:
awk '{ print "hello" }'
變量NF是上線的字段數。你可能會得到awk來解釋
awk 'NF { print "hello" }'
彷彿有輸入線路上的任何數據(字段的NF!= 0,或數量不爲零),然後打印「你好」。
最後一個例子同樣是不可思議的; ARGV是'awk'參數的數組,命令行沒有提供。但它是一個一維數組。你的子腳本符號想把它當作一個Python字典或者Perl散列,把兩個索引組合起來。你確定 - awk支持關聯數組;但由於您沒有在ARGV [5,2]中向數組添加任何內容,因此它不會打印任何內容。
另外,大量有用的信息和教程在http://awk.info
與不同的數組呢?我可以通過彼此不同除以陣列的元素,如: 1 DIVIDE 2 2 DIVIDE 4 => 0,5 0,5 可能? – 2009-02-07 00:45:57