ファイルから印刷する列を含む変数をawkに渡したいですか?
この些細なケースでは、file.txtには1行が含まれています
11 22 33 44 55
これは私が試したものです:
awk -v a='2/4' -v b='$2/$4' '{print a"\n"$a"\n"b"\n"$b}' file.txt
出力:
2/4
22
$2/$4
11 22 33 44 55
必要な出力:
0.5
このタイプの変数の「評価」をコマンドとして実行する方法はありますか?
変数で指定された列を分割する1つの方法は次のとおりです。
$ awk -v num=2 -v denom=4 '{print $num/$denom}' file.txt
0.5
シェル変数を作成する人を信頼する場合b
は、柔軟性を提供するメソッドを次に示します。
$ b='$2/$4'; awk "{print $b}" file.txt
0.5
$ b='$1*$2'; awk "{print $b}" file.txt
242
$ b='$2,$2/$4,$5'; awk "{print $b}" file.txt
22 0.5 55
ここでの柔軟性b
は、任意のawk
コードを含めることができるという事実によるものです。このアプローチでは、の作成者を信頼する必要がありますb
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加