Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> awk linuxを素早くマスター

awk linuxを素早くマスター

  
 

基本構文:

awk命令の基本フォーマットは次のとおりです。awk [パラメータ]< awkプログラム>ファイル名

awkプログラムの主な構造は、次のとおりです。pattern {action} < Br>

一般に、パターンとして「関係式」を使用します。たとえば、次のようになります。$ 1> 4、$ 2 == $ 3、" banana" ///(

一致判断関係、Aがストリング、Bが式A〜B(ストリングAにB式と一致するサブストリングが含まれているかどうかを判別); A!〜B(ストリングAがストリングであるかどうかを判別) B <式>に一致する部分文字列は含まれません。)

アクションには、主にawkのI /O命令:print、printf、getline、awkのフロー制御命令など、いくつかの命令が含まれます。 ){...} else {...}、do {...} while();

awkプログラムは、各入力行の各パターンに対して、一致するたびに一致検索を実行します。上記のモードでは、対応するアクションを実行してから、次の行を読み取り、すべての入力が処理されたことを確認してもう一度一致を開始します。

文中でパターンまたはアクションを省略することができますデフォルトのパターンはすべての行に一致するもので、デフォルトのアクションは現在の行を出力するものです。 Awkは入力から一度に1行(1レコード)読み込みます。デフォルトの行区切り文字は\\ nです。その後、awkはレコードをフィールドに分割し、デフォルトのフィールドは空白に分割します。行の最初のフィールドは$ 1で、その後に$ 2、$ 3 ...が続き、レコード全体が$ 0です。

Awkの組み込み変数。これらの変数を使用して、一般的な関連情報を取得できます。

NF(フィールド数):$ 0に含まれるフィールドを表す値番号

NR(レコード数):awkが読み込んだデータ行数を示す値。

FILENAME:処理中のデータファイルの名前。

詳細については、http://www.jiayii.com/awk-tutorial/を参照してください。

基本的な操作例:テストファイルtest.txt、内容は次のとおりです。




(空白は空白またはタブになることがあります)。 Johnのすべての成績証明書を入手するには、次のコマンドを使用します。

awk '/John /' test.txt(デフォルトでは、行全体が出力されます)

awk '/John /{print $ 0}' Test.txt

awk '$ 2 ==" John" {print $ 0}' test.txt(デフォルトは空白で区切られ、$ 2は各行の2番目のフィールドを表します)

Awk '$ 2〜/John /{print $ 0}' test.txt($ 2と正規表現/John /match)

2。 120を超えるスコアのトランスクリプトを取得します。

awk '$ 3> = 120' test.txt

3元のデータファイルが'、'で区切られている場合は、すべてのステートメントを区切りパラメータに追加できます。awk -F" /John /" test.txt(これは-Fの役割です)


BEGINとEND

パターンで使用できる2つの特別な形式のawk。プログラムに初期状態を与え、プログラムの終了後に実行するためのBEGINとENDを提供します。いくつかの仕上げ作業。 awkが入力のスキャンを開始する前にBEGINの後にリストされた操作が実行され、ENDの後にリストされた操作は全入力をスキャンした後に実行されます。したがって、BEGINは通常、変数と事前設定された初期値を表示するために使用され、ENDは最終結果を出力するために使用されます。

または上記の例:

Johnのスコアをすべて追加すると、使用可能なコマンドは次のようになります。



デフォルトの初期スコアは60で、ファイル内の結果は累積されます。


標準;使用時に初期化する必要はありません。

実際のアプリケーション配列も最も広く使用されていますが、各メンバーの合計スコアを計算するためのデータファイルとしてtest.txtを使用します。


実際のアプリケーション

私がawkを使うとき、私はしばしばオンラインからいくつかの統計情報を得ます、そして、しばしばこれらのログファイルは使われるとき非常に規則的ではありません。または他のコマンドがファイルを通常の出力に変換してから、処理にawkを使用します。
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved