もっと詳しく

Linux でファイルを操作する 1 つの方法は、スクリプト言語を使用して繰り返しタスクの自動化を管理することです。 優れたスクリプト言語の例は次のとおりです。 おかしい これにより、データの抽出とパターンの操作が簡単になります。 awk スクリプト言語の GNU 実装は、 ガウク。 その使用法にまだ同意していない場合は、幸運です。 この投稿では、Linux で gawk を使用するさまざまな例を紹介します。このガイドを読み終える頃には、それを使用した作業についてしっかりと理解できるはずです。

Gawk を使い始める

最新の Linux バージョンを使用している場合、デフォルトで gawk がインストールされているはずです。 そのバージョンを確認することで確認できます。

gawk にはさまざまな使い方があります。 一般的な機能は次のとおりです。

  • 出力行のフォーマット
  • データファイルの変換
  • 1 行あたりのファイルのスキャン
  • 入力行をフィールドに分割する
  • 書式付きレポートの作成
  • データの並べ替え

gawk の基本的な構文は次のとおりです。

$ ガウク [POSIX / GNU style options] -f program_file [ ] ファイル

$ ガウク [POSIX / GNU style options] [ ] ‘プログラム’ ファイル

gawk を使用するには、次のいずれかを使用します。 -f オプションを使用してスクリプト ファイルを指定するか、コマンド ラインでスクリプトを直接指定します。

gawk を使用する際に注意すべき重要なオプションが 3 つあります。

1. -f ファイル、–file=ファイル: gawk を使用してファイルからコマンドを読み取りたい場合に使用します。 ファイルはスクリプトです。

2. -v var=val、–assign=var=val: スクリプトを実行する前に変数に値を代入する必要がある場合に使用します。

3. -F fs、-field-separator=fs: 定義済み変数 FS の値は、入力フィールドのセパレータとして使用されます。

組み込み変数

gawk には、次のような組み込み変数が用意されています。

FS: ファイルを分割するときに使用され、フィールド区切り文字が含まれます。

RS: 現在の文字区切りを含みます。

OFS: AWK が出力するフィールドを区切る出力フィールド セパレータが含まれます。

NF: 入力レコードのフィールド数が NF に格納されます。

ORS: AWK によって出力される出力行を区切る出力フィールド区切り文字が含まれます。

NR: 入力行の総数が含まれます。

前の例では、ファイル内の入力行の区切り文字として * を使用しています。

gawkの使用例

1. -F

テキスト ファイルを並べ替えて、コロンで区切られた最初の 3 つのフィールドを出力するには、次のコマンドを使用します。 を使用することに注意してください。 パスワード ここに私たちのファイルとして:

$ ガウク -F: ‘{印刷する $1; 印刷する $2; 印刷する $3}//パスワード

ここで、セパレーターは完全なコロンです。 最初の 3 つのフィールドが必要なので、前の例で示したように指定します。 微調整して、別のセパレータと別の数のフィールドを使用できます。

2. -f

ファイルから awk プログラム ソースを指定するには、-f フラグの後にファイルを指定します。

$ ガウク -F: -f file1.txt //パスワード

3. ファイルの内容を印刷する

ファイルで gawk を使用すると、ファイル内のすべてのデータ行が出力されます。

4. パターンの操作

gawk を使用して、特定のパターンに一致する行のみを印刷することもできます。 たとえば、特定の単語を含む行を印刷するには、この場合、単語は キム、コマンドは次のようになります。

$ ガウク/キム/ {印刷する}‘ ファイル名

ここで、パターンは文字にすることもできます。 たとえば、コロンを含むすべての行を出力するには、コマンドは次の図のようになります。

印刷する特定の行を指定することもできます。 たとえば、6 より大きいなどの特定の文字を含む行を出力するには、次の構文を使用します。

$ ガウク ‘長さ ($0) > 6‘ ファイル名

5. 行をフィールドに分割する

Gawk はデフォルトで、ファイル内の行を印刷するときにすべてのフィールドを印刷します。 ただし、印刷するフィールドを指定できます。 最初のフィールドは $1 行全体は次のように表されます $0. デフォルトでは、空白に基づいてフィールドを区切るように指定しない限り、行全体が印刷されます。

たとえば、行を区切り、各行の 2 番目のフィールドのみを出力するには、コマンドは次のようになります。

$ ガウク{印刷する $2}‘ ファイル名

行番号を追加するには、 NR 変数。

新しいコマンドは次のようになります。

$ ガウク{印刷NR、 $2}‘ ファイル名

6. 行数を取得する

大きなファイルの場合、合計行数を取得する必要がある場合があります。これは、次の構文を使用して実現できます。

$ ガウク ‘終わり {NRを印刷}‘ ファイル名

結論

Linux で gawk を使用する方法を知ることは、特にテキスト データを扱う場合に、楽しくて役立ちます。 さまざまなパターンを使用して、データ行を抽出および操作できます。 願わくば、この記事で取り上げた例が、さまざまな活動に gawk を使用する上で有利なスタートを切り、あなたの目を開いてくれることを願っています。

The post gawk スクリプトの使用例 appeared first on Gamingsym Japan.