AWKはパターンの検索と処理に適しています。スクリプトを実行して1つ以上のファイルを検索し、一致するパターンを特定し、それらのパターンが特定のタスクを実行するかどうかを確認します。このガイドでは、AWK Linuxコマンドを調べて、何ができるかを確認します。
AWKでできる操作は何ですか?
- ファイルを1行ずつスキャンする
- 各入力行をフィールドに分割する
- 入力行とフィールドをパターンと比較する
- 一致する行に対して指定されたアクションを実行する
AWKコマンドの有用性
- データファイルの変更
- フォーマットされたレポートの作成
awkコマンドのプログラミングの概念
- 出力行をフォーマットする
- 条件とループ
- 算術演算と文字列演算
AWK構文
$ awk options 'selection _criteria {action }' input-file > output-file
AWKの使用法について詳しく説明するために、 file.txtというテキストファイルを使用します。
1列目=>アイテム、
2列目=>モデル
3列目=>国
4列目=>コスト
Awkコマンドの例
特定の列の印刷
2列目と3列目を印刷するには、以下のコマンドを実行します。
$ awk '{print $2 "\t" $3}' file.txt
出力
ファイル内のすべての行を印刷する
ファイル内のすべての行と列を一覧表示する場合は、
を実行します。$ awk ' {print $0}' file.txt
出力
特定のパターンに一致するすべての線を印刷する
特定のパターンに一致する行を印刷する場合、構文は次のようになります
$ awk '/variable_to_be_matched/ {print $0}' file.txt
たとえば、すべてのエントリを文字「o」と一致させるには、構文は次のようになります
$ awk '/o/ {print $0}' file.txt
出力
すべてのエントリを文字「e」と一致させるには
$ awk '/e/ {print $0}' file.txt
出力
特定のパターンに一致する列を印刷する
AWKがパターン一致を見つけると、コマンドはレコード全体を実行します。特定のフィールドのみを表示するように指示を出すことで、デフォルトを変更できます。
例:
$ awk '/a/ {print $3 "\t" $4}' file.txt
上記のコマンドは、文字「a」がいずれかの列に表示される3番目と4番目の列を出力します
出力
一致したパターンのカウントと印刷
AWKを使用して、一致するすべてのパターンの行数をカウントして印刷できます。たとえば、次のコマンドは、一致するパターンが表示されるインスタンスの数をカウントします
$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt
出力
文字数が多いまたは少ない行を印刷する
AWKには、文字列の長さを返す組み込みの長さ関数があります。コマンドから$0変数は行全体を格納し、本文ブロックがない場合は、デフォルトのアクション、つまり印刷アクションが実行されます。したがって、テキストファイルでは、1行に18文字を超える場合、比較結果はtrueになり、その行は次のように出力されます。
$ awk 'length($0) > 20' file.txt
出力
AWKの出力を別のファイルに保存する
結果の出力を保存する場合は、>リダイレクト演算子を使用します。例
$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt
以下に示すように、catコマンドを使用して結果を確認できます
$ cat output.txt
出力
結論
AWKは、ドキュメント内のテキストを操作したり、特定の機能を実行したりするために使用できるもう1つの単純なプログラミングスクリプトです。共有コマンドは、まだ知らない、または出くわさない少数または多数です。