私は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
。