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 配列添字区切り文字 (デフォルト値は

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
