此命令打印:AWK - 執行字符串作爲命令?
$ echo "123456789" | awk '{ print substr ($1,1,4) }'
1234
是否可以執行字符串命令作爲?例如,下面的命令:
echo "123456789" | awk '{a="substr"; print a ($1,1,4) }'
結果:
$ echo "123456789" | awk '{a="substr"; print a ($1,1,4) }'
awk: {a="substr"; print a ($1,1,4) }
awk: ^syntax error
編輯:
$ cat tst.awk
function my_substr(x,y,z) { return substr(x,y,z) }
{ a="my_substr"; print @a($1,1,4) }
[email protected]:~/Pulpit$ echo "123456789" | gawk -f tst.awk
gawk: tst.awk:3: { a="my_substr"; print @a($1,1,4) }
gawk: tst.awk:3: ^nieprawidłowy znak '@' w wyrażeniu
[email protected]:~/Pulpit$
但你爲什麼需要它? – Vijay
我好奇地問 – Tedee12345
它是一個很常見的事情,想定義一個泛型函數來迭代數組的所有元素,並對每個元素執行一些操作X,其中X根據調用而變化並且能夠分配函數名稱到X可以避免編寫一系列「if」或switch語句(gawk)。 –