Awk Detailed

  

AWKは優れたテキスト処理ツールです。これは、Linuxで利用可能な最も強力なデータ処理エンジンの1つだけでなく、あらゆる環境でも使用できます。このプログラミング言語およびデータ操作言語(創設者Alfred Aho、Peter Weinberger、およびBrian Kernighanの頭文字にちなんで名付けられた)の最大の機能は、一人の人間の知識に依存しています。 AWKは非常に強力な機能を提供します:スタイルロード、フロー制御、数学演算子、プロセス制御ステートメント、さらには組み込みの変数と関数。それは完全な言語が持つべきであるほとんどすべての素晴らしい機能を持っています。実際、AWKには独自の言語があります。AWKプログラミング言語は、3人の作成者によって正式に「スタイルスキャンおよび処理言語」として定義されています。これにより、入力ファイルの読み取り、データのソート、データの処理、入力の計算、およびレポートの生成を行う短いプログラムを作成することができます。その他にも多数の機能があります。

あなたはUNIXに精通しているかもしれませんが、あなたはawkに精通していないかもしれません。 awkは何ですか?他のほとんどのUNIXコマンドとは異なり、名前からawkの機能を知ることは不可能です。独立した意味を持つ英語の単語でも、関連する複数の単語の省略形でもありません。実際、awkは、Aho、(Peter)Weinberg、(Brain)Kernighanの3つの名前の略語です。これらの3人がawkを作成しました - 優れたスタイルのスキャンおよび処理ツールです。

AWKは、最も簡単に言うと、テキストを操作するためのプログラミング言語ツールです。 AWKは多くの点でシェルプログラミング言語と似ていますが、AWKには独自の構文があります。そのデザインのアイデアは、SNOBOL4、sed、Marc Rochkind、言語ツールyaccおよびlexによって設計された効果的な言語、そしてもちろんC言語からの優れたアイデアから派生しています。 AWKが最初に作成されたときは、その目的はテキスト処理でした。この言語の基本は、入力データにパターンマッチングがある限り、一連の命令を実行することでした。ユーティリティは、ファイル内の各行をスキャンして、コマンドラインで指定されたものと一致するパターンを探します。一致が見つかった場合は、次のプログラミングステップに進みます。一致が見つからない場合は、次の行の処理を続けます。

操作は複雑になることがありますが、コマンドの構文は常に次のようになります。

awk '{pattern + action}' {filenames}

ここで、patternはデータ内のAWKを表します。検索されるコンテンツとアクションは、一致が見つかったときに実行される一連のコマンドです。中括弧({})はプログラム内で常に出現する必要はありませんが、特定のパターンに従って一連の命令をグループ化するために使用されます。

gawkはAWKのGNUバージョンです。

まず、AWKの機能は何ですか?

sedとgrepに加えて、awkはスタイルスキャンと処理のツールです。しかし、その機能はsedやgrepよりはるかに強力です。 Awkは非常に強力な機能を提供します:grepとsedができることのほとんどすべてを行うことができます。また、スタイルの読み込み、フロー制御、数学演算子、プロセス制御ステートメント、さらには組み込み変数や関数さえも実行できます。 。それは完全な言語が持つべきであるほとんどすべての素晴らしい機能を持っています。実際、awkには独自の言語があります。awkプログラミング言語は、awkの3人の作成者によって正式に定義されています。スタイルスキャン言語と処理言語です。

なぜ、なぜawkを使用するのですか?

それでもなお、なぜawkを使用すべきなのでしょうか?

awkを使用する最初の理由はテキストベースです。 Awkはデータベースのようなことをしますが、データベースとは異なり、テキストファイルを処理しますこれらのファイルは特別な保存フォーマットを持たず、通常の人々はそれらを編集して読むことができます。それらを理解して取り扱います。データベースファイルは特別な格納形式を持つ傾向があるため、データベースハンドラで処理する必要があります。 UNIXにはsed、grep、sort、findなどのツールが多数ありますが、そのうちの1つがawkです。とても良い

awkを使用する2番目の理由は、awkが単純なツールであるということです。もちろん、それはその強力な機能に関連します。確かに、UNIXには、UNIXネイティブ開発ツールのC言語など、優れたツールが多数あり、C ++の継続は非常に優れています。しかし、それらと比較して、awkは同じ機能を実行するのにはるかに便利で簡単です。単純な問題を解決するためのawkコマンドラインから複雑で洗練されたawkプログラミング言語まで、この問題の利点は、複雑な方法で問題を解決する必要がないことです。簡単な質問です。たとえば、コマンドラインで簡単な問題を解決してもCが動作しない単純なプログラムでも、C言語を記述してコンパイルする必要があります。第二に、awk自体が解釈され実行されるため、awkプログラムはコンパイルプロセスを経る必要がなくなり、同時にシェルスクリプトプログラムにも適合します。 awkはC言語の優れたコンポーネントを数多く吸収しますが、C言語に精通している方がawkを習得するのに役立ちますが、awk自体は強力なC言語を使用する必要はありません。しかし、スキルを習得するために学ぶのに長い時間がかかる開発ツール。

awkを使用する3番目の理由は、awkが入手しやすいツールだからです。 CやC ++とは異なり、awkには1つのファイル(/bin /awk)しかなく、ほとんどすべてのバージョンのUNIXが独自のバージョンのawkを提供しているので、awkの入手方法について心配する必要はありません。 C言語はUNIX用の自然な開発ツールですが、この開発ツールは別にリリースされています、つまり、C言語開発ツールのあなたのUNIXバージョンの代金を払わなければなりません(Dバージョンを使う人を除いて)。 )、それを入手してインストールすると、それを使用することができます。

上記の理由に基づき、awkの強力な機能と相まって、テキストスタイルのスキャンに関連する作業を行いたいのであれば、awkが最初の選択肢となるはずです。一般的なシェルツールやシェルスクリプトで問題が解決しない場合はawkを試し、それでも問題が解決しない場合はC言語を使用してください。 C ++

3つのawk呼び出しメソッド

前述のように、awkはさまざまなニーズを満たすためのさまざまなソリューションを提供します。

1、awkコマンドライン、通常のUNIXコマンドと同じようにawkを使用することも、コマンドラインでawkプログラミング言語を使用することもできますawkは複数行の入力をサポートしますが、長いコマンドラインを入力して正しいことを確認するのに適しています。頭が痛いので、この方法は一般的に単純な問題を解決するためにのみ使用されます。もちろん、シェルスクリプトでawkコマンドラインやawkスクリプトを参照することもできます。

Copyright © Windowsの知識 All Rights Reserved