Linux/UnixにおけるAWKコマンド

AWKはパターン検索や処理に適しています。スクリプトは1つまたは複数のファイルを検索して、一致するパターンを特定し、そのパターンに対して特定のタスクを行います。このガイドでは、AWK Linuxコマンドについて調べ、その機能を見ていきます。

AWKはどんな操作ができますか?(AWK wa donna sōsa ga dekimasu ka?)

  • Scanning files line by line
  • Splitting each input line into fields
  • Comparing input lines and fields to patterns
  • Performing specified actions on matching lines

AWKコマンドの有用性

  • Changing data files
  • Producing formatted reports

awkコマンドにおけるプログラミングの概念

  • Format output lines
  • Conditional and loops
  • Arithmetic and string operations

AWKの構文

$ awk options 'selection _criteria {action }' input-file > output-file
awk command example file

Awkのコマンドの例を示す。

特定の列を印刷する

2番目と3番目の列を印刷するために、以下のコマンドを実行してください。

$ awk '{print $2 "\t" $3}' file.txt
Awk Print Second And Third Column

ファイル内のすべての行を印刷する

ファイルのすべての行と列をリストにする場合は、実行してください。

$ awk ' {print $0}' file.txt
Awk Print All Lines

特定のパターンに一致するすべての行を印刷する。

特定のパターンに一致する行を印刷したい場合は、構文は以下のようになります。

$ awk '/variable_to_be_matched/ {print $0}' file.txt

例えば、文字「o」を含むすべてのエントリーをマッチさせるには、次のような構文を使用します。

$ awk '/o/ {print $0}' file.txt
awk linux command matching all lines
$ awk '/e/ {print $0}' file.txt
Awk Matching Lines With E

特定のパターンに一致する列を印刷する。

AWKがパターンに一致する箇所を見つけると、そのコマンドはレコード全体を実行します。特定のフィールドのみを表示する命令を発行することで、デフォルトを変更することができます。例えば、

$ awk '/a/ {print $3 "\t" $4}' file.txt
Awk Matching Column

マッチしたパターンのカウントと印刷

日本語で以下を自然に言い換えるとすると、一つのオプションだけ必要です:
AWKを使用して、パターンに一致する各行の数をカウントして出力することができます。例えば、以下のコマンドは一致するパターンの出現回数を数えます。

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt
Count Columns Matching a pattern

文字数が特定の数より多いまたは少ない行を印刷します。

AWKには組み込みのlength関数があり、これは文字列の長さを返します。コマンドの$0変数には行全体が格納され、本体ブロックがない場合、デフォルトのアクションであるprintアクションが実行されます。したがって、テキストファイル内の行が18文字を超える場合、比較結果はtrueとなり、以下のように行が出力されます。

$ awk 'length($0) > 20' file.txt
Print Lines With More Or Less Characters

AWKの出力結果を異なるファイルに保存する。

結果を保存したい場合は、> リダイレクション演算子を使用してください。例えば

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

以下のようにcatコマンドを使用して結果を検証できます

$ cat output.txt
Awk Redirect Output

結論

AWKは、文書のテキストを操作したり特定の機能を実行するために使用できる、もう1つのシンプルなプログラミングスクリプトです。共有されたコマンドは、あなたがまだ知らないか出会っていないもののいくつかです。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds