スタート基本チュートリアルのawk Linuxの一般的なコマンド

awkコマンドツール

Linux / UNIXシステムでは、awkは、入力されたテキストが行によるリード線である、と相互作用出力形式またはコンテンツフィルタ処理の要件を満たすために、指定されたパターンに応じてマッチングをすることはできません見つけるために、編集するための強力なツールですかなり複雑なテキスト操作を実施する場合には、広く自動化された、さまざまな構成タスクを完了するために、シェルスクリプトで使用されています。

A、awkコマンドの構文と概要

awkのオプション「編集モードまたは条件付き命令{}」FILE1 FILE2 ... 

//コンテンツフィルタリングと出力ファイルその満たす条件

AWK -fスクリプトファイル1ファイル2 ...

//スクリプト、コンテンツフィルタリング、および出力からの編集指示を呼び出します

* awkの実行結果は、フィールド機能を印刷する印刷データによって表示されることがあります。awkコマンドを使用して、あなたは論理演算子を「&&」と「||」を使用することができます。

そのような+などの単純な数学演算であってもよく、 - ,, /、%、^、それぞれ、乗算、除算、剰余、電力を減算、加算。**

awkは、標準入力ファイルまたは入力情報から読み込み、sedのように、情報は、ラインの読み取りでラインを読んれます。違いは、レコードとしてテキストファイルのAWKコマンドラインが、レコードのフィールドとして行(列)の特定の部分です。これらの異なるフィールド(列)を動作させるために、シェル変数$ 1、$ 2 ... $ 9で借りAWKの位置に同様の方法は、異なるカラム、$ 0行全体の手順を示します。異分野と異なる分野が指定された方法によって分離することができる、awkのデフォルトの区切り文字はスペースです。awkコマンドは、利用形態「-Fセパレータは、」区切り文字を指定することができます。

二、awkコマンドの使用例

1)行出力テキスト

1、すべてのコンテンツの出力

[linuxmi @のlinux:〜/ linuxmi迷] $のawkの{印刷} 'linuxmi.py

[linuxmi @のlinux:〜/ linuxmi迷] $のawkの{$ 0印刷} 'linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

「linuxmi.py」に相当

第3のコンテンツ出力線に第2、

[Linuxmi @のlinux:〜/ linuxmi迷] $ awkのNR == 1、NR == 3 {印刷} 'linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

空白行を含みます

図3に示すように、ライン3と、第1行の内容5

[Linuxmi @のlinux:〜/ linuxmi迷] $ awkのNR == 3 || NR == 5 {印刷} linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

図4に示すように、すべての奇数行からの出力

【Linuxmi @ Linuxの場合:〜/ linuxmi迷] $のAWK '(NR%2)== 1 {印刷} linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

5、すべての偶数ラインの内容の出力

【Linuxmi @ Linuxの場合:〜/ linuxmi迷] $のAWK '(NR%2)== 0 {印刷} linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

6、の冒頭に「ルート」への出力ライン

[linuxmi @のlinux:〜/ linuxmi迷] $ awkの/ ^ルート/ {印刷} '/ etc / passwdファイル

スタート基本チュートリアルのawk Linuxの一般的なコマンド

7、出力端「nologinの」ライン

[linuxmi @のlinux:〜/ linuxmi迷] $ awkの/ nologinに$ / {印刷} '/ etc / passwdファイル

スタート基本チュートリアルのawk Linuxの一般的なコマンド

8、の終わりに/ binに/ bashのに行数をカウントし

[linuxmi @のlinux:〜/ linuxmi迷] $ awkのBEGIN {x = 0}; / \ / binに\ / bashを$ / {X} ++; END {印刷X} '/ etc / passwdファイル

9、統計の終わりに/ binに/ bashの行数

[linuxmi @のlinux:〜/ linuxmi迷] $はgrep -c "/ binに/バッシュ$" / etc / passwdファイル

スタート基本チュートリアルのawk Linuxの一般的なコマンド

10、段落スペースで区切ったファイルの数を数えます

[linuxmi @のlinux:〜/ linuxmi迷] $のawk「{RSを= ""} BEGIN; END {印刷NR}」/etc/dhcp/dhclient.conf

スタート基本チュートリアルのawk Linuxの一般的なコマンド

注:より多くのコマンドは、使用する場合は、「BEGIN ...... END」

2)を押して、出力テキスト・フィールド

図1は、各ラインの出力は、3つのフィールド(スペースで区切られました)

[linuxmi @のlinux:〜/ linuxmi迷] $のawkの '{$ 3印刷}' linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

2、(スペースで区切られた)各ラインの出力と第3フィールド

[linuxmi @のlinux:〜/ linuxmi迷] $のawk '{$ 3 $ 1印刷}' linuxmi.py

スタート基本チュートリアルのawk Linuxの一般的なコマンド

3)パイプを通して、シェルコマンドは二重引用符を呼び出します

1、「bashの」を使用して、ユーザーの数を数える「トイレ-l」コマンドを呼び出します

[linuxmi @のlinux:〜/ linuxmi迷] $ awkの-F:「/ bashを$ / {印刷| "トイレ-l"}」/ etc / passwdファイル

[linuxmi @のlinux:〜/ linuxmi迷] $はgrep -c "のbash $" / etc / passwdファイル

スタート基本チュートリアルのawk Linuxの一般的なコマンド

2、「W」コマンドと力ああ統計オンラインユーザーを呼び出します

[linuxmi @のlinux:〜/ linuxmi迷] $ awkのBEGIN {しばらく( "W" | getlineの)のn ++; {印刷N-2}}

3、「ホスト名」コマンド、および現在のユーザー名の出力を呼び出します

[linuxmi @のlinux:〜/ linuxmi迷] | $ awkは「{ "ホスト名" BEGIN getline; 印刷$ 0}」

スタート基本チュートリアルのawk Linuxの一般的なコマンド

4)awkコマンドの簡単な数学を使って

【linuxmi @ Linuxの場合:〜/ linuxmi迷] $ AWK 'BEGIN {= 9; B = 8;プリント"(+ b)は="、(+ b)は}
(+ B)が17 =
[linuxmiは@ Linuxの場合:〜/ linuxmi迷] $ AWK 'BEGIN {= 100、B = 78;プリント"( - B)="、( - B)}
( - b)は= 22
[linuxmi @ Linuxの場合:〜 / linuxmi迷] $ AWK 'BEGIN {= 80; B = 5;プリント"(/ B)="(/ B)}'
(/ B)が16 =
[linuxmi @ Linuxの場合:〜/ linuxmi迷] $ awkのBEGIN {= 80; B = 5プリント"(÷B)="(/ B)} '
(÷B)= 16
[linuxmi @ Linuxの場合:〜/ linuxmi迷] $ AWK '{= 10; B = 9;プリント"(×B)="、(* B)} BEGIN'
(×B)= 90

図は次のとおりです。

スタート基本チュートリアルのawk Linuxの一般的なコマンド

おすすめ

転載: www.linuxidc.com/Linux/2020-02/162243.htm