我需要在awk
中執行絕對值計算。awk:自動調用文件中的函數
但絕對值不內置awk
,所以很多我awk
命令是這樣的:
awk 'function abs(x){return ((x < 0.0) ? -x : x)} { ...calls to "abs" .... }' file
是否有存儲用戶定義的awk
功能的文件,並有awk
自動加載的方式這些函數何時被調用?
類似於設置awk
「包含」路徑或用戶配置文件,與對bash和其他程序執行的方式非常相似。
我需要在awk
中執行絕對值計算。awk:自動調用文件中的函數
但絕對值不內置awk
,所以很多我awk
命令是這樣的:
awk 'function abs(x){return ((x < 0.0) ? -x : x)} { ...calls to "abs" .... }' file
是否有存儲用戶定義的awk
功能的文件,並有awk
自動加載的方式這些函數何時被調用?
類似於設置awk
「包含」路徑或用戶配置文件,與對bash和其他程序執行的方式非常相似。
您可以使用@include "file"
導入文件。
例如創建一個名爲func_lib
文件:
function abs(x){
return ((x < 0.0) ? -x : x)
}
然後用awk
它包含:
awk '@include "func_lib"; { ...calls to "abs" .... }' file
但是我必須每次都這樣做......我想馬克Setchell的評論是最好的 – cmo 2014-09-26 20:02:25
對於您的具體使用,也許它是最好的。這取決於你想如何調用awk。只需要將其包含在需要外部函數的特定'awk'程序中就可以了。另外,如果使用'awk'腳本,在頂部執行所有'@ include's而不是將''''''''''''''傳遞給'-i'命令行參數似乎更實際。 – 2014-09-26 20:22:56
也可以嘗試這樣
$ awk -f function_lib.awk --source 'BEGIN{ print abs(-1)}'
HTTPS
通話功能:// WWW .gnu.org /軟件/ GAWK /手動/html_node/Include-Files.html#Include-Files – Basilevs 2014-09-26 15:31:12
在鏈接@Basilevs發佈狀態時,可以使用「@include」文件「'導入文件。 – 2014-09-26 16:26:23
我想你也可以將'awk'別名爲'awk -i funcs.awk' – 2014-09-26 16:28:20