ホームページ > php教程 > php手册 > awkの紹介と勉強ノート集 ページ 1/3

awkの紹介と勉強ノート集 ページ 1/3

WBOY
リリース: 2016-06-13 12:28:36
オリジナル
1205 人が閲覧しました

Copyright © 2004 この記事は GPL 契約に準拠しており、転載、変更、配布は歓迎されています。

初発売日: 2004 年 8 月 6 日


---------------------- ---- ------------------------------------------------ ---- ---

目次

1. awk の概要
2. awk コマンドの形式とオプション
2.1. awk 構文には 2 つの形式があります
2.2.コマンドオプション
3. モードと操作
3.2. 操作
5. awk 演算子
6.レコード
6.2. ドメイン
7. gawk 固有の正規表現メタ文字
9. 比較演算子 (~)
11. 範囲テンプレート
12. passwd ファイルの有効性を検証する例
14. awk プログラミング
14.2. 🎜>14.3. END モジュール
14.5. 条件付きステートメント
14.7. awk の内部構造
15.
1. awk の概要
awk は、linux/unix でテキストとデータを処理するために使用されるプログラミング言語です。データは、標準入力、1 つ以上のファイル、または他のコマンドの出力から取得できます。ユーザー定義関数や動的正規表現などの高度な機能をサポートしており、Linux/Unix での強力なプログラミング ツールです。コマンドラインから使用されますが、スクリプトとして使用されることが多くなります。 awk がテキストとデータを処理する方法は、最初の行から最後の行までファイルを 1 行ずつスキャンして、特定のパターンに一致する行を探し、これらの行に対して必要な操作を実行することです。処理アクションが指定されていない場合は、一致する行が標準出力 (画面) に表示されます。モードが指定されていない場合は、操作で指定されたすべての行が処理されます。 awk はそれぞれ、作成者の姓の最初の文字を表します。それは、著者がアルフレッド・アホ、ブライアン・カーニハン、ピーター・ワインバーガーの3人だからです。 gawk は awk の GNU バージョンであり、Bell Labs と GNU からのいくつかの拡張機能を提供します。以下に紹介する awk は GUN の gawk を例にしています。Linux システムでは awk は gawk にリンクされているため、以下はすべて awk を使用して導入されます。

2. awk コマンドの形式とオプション
2.1. awk 構文には 2 つの形式があります。
awk [オプション] 'script' var=value ファイル

awk [ options] -f scriptfile var=value file(s)

2.2. コマンドオプション
-F fs または --field-separator fs
入力ファイルの区切り文字を指定します。fs は文字列または-F: などの正規表現。

-v var=value または --assign var=value
ユーザー定義変数を割り当てます。

-f scripfile または --file scriptfile
スクリプト ファイルから awk コマンドを読み取ります。

-mf nnn および -mr nnn
nnn 値に固有の制限を設定します。-mf オプションは nnn に割り当てられる最大ブロック数を制限し、-mr オプションはレコードの最大数を制限します。これら 2 つの関数は、ベル研究所バージョンの awk の拡張機能であり、標準の awk には適用できません。

-W Compact または --compat、-W traditional または --traditional
互換モードで awk を実行します。したがって、gawk は標準の awk とまったく同じように動作し、すべての awk 拡張機能は無視されます。

-W copyleft または --copyleft、-W copyright または --copyright
簡単な著作権情報を出力します。

-W help または --help、-W uses または --usage
すべての awk オプションと各オプションの簡単な説明を出力します。

-W lint または --lint
従来の UNIX プラットフォームに移植できない構造に関する警告を出力します。

-W lint-old または --lint-old
レガシー UNIX プラットフォームに移植できない構造に関する警告を出力します。

-W posix
互換モードをオンにします。ただし、次の制限があり、認識されません: x、関数キーワード、func、エスケープ シーケンス、fs がスペースの場合、改行はフィールド区切り文字として使用されます。演算子 ** および **= は ^ を置き換えることはできません。 ^= ;ffflush は無効です。

-W re-interval または --re-inerval
括弧式 [[:alpha:]] などの間隔正規表現の使用を許可します。(grep の Posix 文字クラス) を参照してください。

-W ソース プログラム テキスト または --ソース プログラム テキスト
プログラム テキストをソース コードとして使用します。これは、-f コマンドと混合できます。

-W version または --version
バグ レポート情報のバージョンを出力します。

3. モードと操作
Awk スクリプトは次のモードと操作で構成されます:
パターン {action} ($awk '/root/' test、または $awk '$3
両方ともオプションです。パターンがない場合、アクションはすべてのレコードに適用されます。デフォルトでは、各入力行はレコードですが、ユーザーは RS 変数を使用して異なる区切り文字を指定できます。

3.1. パターン
パターンは次のいずれかになります:

/正規表現/: ワイルドカードを使用した拡張セット。

関係式: 以下の演算子テーブルの関係演算子を使用して、文字列または数値の比較を行うことができます。たとえば、$2>%1 は 2 番目のフィールドを選択します。最初のフィールドはOKです。

パターン マッチング式: 演算子 ~ (一致) と ~! (不一致) を使用します。

モード、モード: 行の範囲を指定します。この構文には BEGIN パターンと END パターンを含めることはできません。

BEGIN: ユーザーは、最初の入力レコードが処理される前に実行されるアクションを指定できます。通常は、ここでグローバル変数を設定できます。

END: 最後の入力レコードが読み取られた後にユーザーにアクションを実行させます。

3.2. オペレーション
オペレーションは、改行またはセミコロンで区切られ、中かっこで囲まれた 1 つ以上のコマンド、関数、式で構成されます。主要な部分は 4 つあります:

変数または配列の割り当て

出力コマンド

組み込み関数

制御フロー コマンド

4 . awk awk
の環境変数 表 1. awk

の環境変数 変数 説明
$n 現在のレコードの n 番目のフィールド。フィールドは FS で区切られます。
$0 入力レコードを完了します。
ARGC コマンドラインパラメータの数。
ARGIND コマンドライン内の現在のファイルの位置 (0 から数えます)。
ARGV コマンドライン引数を含む配列。
CONVFMT デジタル変換形式 (デフォルト値は %.6g)
ENVIRON 環境変数の連想配列。
ERRNO 最後のシステムエラーの説明。
FIELDWIDTHS フィールド幅リスト (スペースバーで区切られています)。
FILENAME 現在のファイル名。
FNR NR と同じですが、現在のファイルを基準とします。
FS フィールド区切り文字 (デフォルトは任意のスペース)。
IGNORECASE true の場合、大文字と小文字を無視した一致を実行します。
NF 現在のレコード内のフィールドの数。
NR 現在のレコード番号。
OFMT デジタル出力形式 (デフォルト値は %.6g)。
OFS 出力フィールドの区切り文字 (デフォルト値はスペース)。
ORS 出力レコード区切り文字 (デフォルト値は改行文字)。
RLENGTH match 関数によって照合された文字列の長さ。
RS レコード区切り文字 (デフォルトは改行文字)。
RSTART match 関数によって一致した文字列の最初の位置。
SUBSEP 配列添字区切り文字 (デフォルト値は

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート