awkファイルを呼び出すbashスクリプトがあります。
fire.awk
awkファイルをどのように呼び出すのですかfire.awk
?見たことがありますが、#!/bin/awk -f
これがルールであるかどうかはわかりません。
#!/bin/awk -f
人々はなぜawkファイルに含めるのですか?
答え1
シェルスクリプトからawkスクリプトを呼び出すには、2つの3つの解決策があります。
- シェルスクリプト内のawkスクリプト
文書foo.sh
:
#! /usr/bin/env bash
awk '{print}' < input.txt > output.txt
awkスクリプトが非常に短い場合に便利です。
大きなawkスクリプトがあれば、改行があっても悪いです。 IDEはawk構文を認識できません。'...'
- シェルスクリプトではなくawkスクリプト
長いawkスクリプトのためのより良いソリューションです。
- 実行不可能なawkスクリプトの使用
foo.awk
シェルからawkスクリプトを呼び出すには、次のコマンドを使用する必要がありますawk
。文書foo.sh
:
#! /usr/bin/env bash
/bin/awk -f foo.awk < input.txt > output.txt
環境変数に命令がある場合は省略できますが、/bin/
実際には安全ではありません。awk
PATH
文書foo.awk
:
{print}
本当に短いです。 IDEはファイル拡張子の構文のみを認識します。
- 実行可能なawkスクリプトの使用
ファイルに実行可能フラグを追加するchmod +x foo.awk
には、このコマンドを使用します。シェルからawkスクリプトを呼び出すためにこのコマンドをfoo.awk
使用する必要はありません。foo.awk
awk
文書foo.sh
:
#! /usr/bin/env bash
foo.awk < input.txt > output.txt
foo.awk
次のように環境変数にPATH
ディレクトリを含めるか、プレフィックスを付ける必要があります。/my/program/directory/foo.awk ...
良いインタプリタを実行するには、awkスクリプトの最初の行にshebang行を追加する必要がありますfoo.awk
。
#! /bin/awk -f
{print}
一部のIDEは、このファイルを拡張子付きのawkファイルとして認識します。疑わしい場合は、最初の行を読んでより良い選択をしてください。