剛剛發現,在「AWK」使用開關的情況下我的問題是在這方面的知識基礎完全一樣使用--enable-開關在bash腳本:如何有AWK聲明
switch/case doesn't work in awk
現在我在bash腳本中使用我的awk語句,而不是將它作爲單獨的AWK腳本文件運行。考慮到我如何在我的bash腳本中使用--enable-switch
。這是我的腳本的結構:
#! bin/ksh
. ~/.profile
// bash if-else statements to perform some tasks
/usr/bin/awk '
BEGIN {
// array[] defined
}
// some statements
function printmsg(msg) {
switch(1) {
case /pattern1/:
print msg
break
case /pattern2/:
print msg
break
}
}' file
我在哪裏可以執行--enable-switch
?
我GAWK的版本是gawk-3.1.5-16.el5
我認爲你是對的。因此,我現在唯一的選擇是將它們改爲幾個if-else語句:) –
根據我對3.1.7的gawk手冊頁的解釋,「--enable-switch」選項是編譯時選項,並且不是運行時命令行選項,除非它首先使用「--enable-switch」選項編譯。我安裝了版本4.1.3,'switch'是一個有效的_control語句_並且不需要使用它。所以,如果'--enable-switch'選項不起作用,我相信你或者需要使用一個更高版本,其中'switch'被編譯到可執行文件中,或者你需要獲取你的版本的源代碼'使用'--enable-switch'選項來編譯它。 – user3439894