入力ファイルを引数として渡してAWKスクリプトを作成する

入力ファイルを引数として渡してAWKスクリプトを作成する

私はLinuxに初めて触れたので、比較的簡単な作業かもしれませんが、研究は失敗しました。一つ書きたいawkスクリプト1行に1語のみを使用して入力ファイルを繰り返し、変数に割り当てる必要があり、それに対して文字列操作を実行する必要があります。端末に入力された入力ファイルを参照して各行の単語を取得して変数に割り当てる方法は非常に混乱しています。

答え1

各行に単語がある場合は、awkその単語を$1(「最初のフィールド」)に入れます。必要に応じてそこから抽出して変数に入れることができますvar = $1。とにかく、操作$1(または変数に値を割り当てる場合)を介して任意のvar文字列操作を実行できます。

word=otherthingたとえば、各単語が次のように出力されようとしているとしますotherthing

awk '{ split($1, a, "="); print a[2] }' infile

またはより短い、

awk -F '=' '{ print $2 }' infile

$2は各行の2番目のフィールドであり、これらのフィールドはで区切られています-F '='awk=

何をすべきか言及していないので、これ以上例を提示しません。

ユーザーが直接呼び出すことができるスクリプトで作成することもできます。

#!/usr/bin/awk -f

BEGIN { FS = "=" }

{ print $2 }

これはテキストファイルとして保存され、実行可能になり、(を使用してchmod +x script.awk)ユーザーが使用できます。

./script.awk infile

... #!-lineがバイナリを指すと仮定しますawk

関連情報