複雑なプロシージャを含むAWKプログラムファイルがあるとしましょう。例.awk。現在のレコードの行全体ではなく、特定の列に変数を割り当てようとしています。
#!/usr/bin/awk -f
BEGIN {...}
... {...}
...
END {
...
var1 = ... # do something
print "var1 ... " var1
var2 = ⬛⬛⬛⬛⬛⬛
print "var2 ... " var2
}
var1
ファイル入力とは何の関係もありません。シェルで次のプログラムを実行します。
awk -f ./example.awk ./text.txt
...
var1 ... I like chocolate cake
var2 ... chocolate
この例に示すように、文字var2
列は3番目のフィールド/列です。 UNIX シェルでは、次のようになります。
var2=$(cut -d ' ' -f 3 <<< "$var1")
var2
AWKでスクリプトを作成するにはどうすればよいですか?
答え1
awk -v f=3 '
END {
var1 = "I like chocolate cake"
n = split(var1, a)
var2 = a[f]
print var1
print var2
}
' /dev/null
I like chocolate cake
chocolate