Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxの使用awkの実装のインスタンス

Linuxシステムでawkのテキスト処理ツールを使用して

Linuxの使用awkの実装のインスタンス

Linuxシステムでawkのテキスト処理ツールを使用して

  
の複数行をマージし、それがawknextステートメントを使用する必要が複数行を、マージする必要がある場合もあり、以下の小さなシリーズでは、Linuxで使用与えました複数行の統合のawkの実装では、友人が次を理解するために来ることができる必要があります。

awknext文は使用:プログレッシブ試合を循環して、彼らは次のであれば、単純に次の文を無視し、現在の行をスキップします。そして、次の行マッチング。

のコードは次の通りである:

TEXT.TXT含量:



B

C

D < BR>

E

[chengmo @ centos5シェル] $のAWK‘ NR%2 == 1 {次} {印刷NR、$ 0;}’ TEXT.TXT

2 B

4 D

2以上1により記録行数は、現在の行がスキップされた場合。次の印刷NR、$ 0が実行されません。次の行は、プログラムがNR%2の決定された値で始まり、開始されます。 2、文の次のブロックを実行する:この時間は、行番号が記録され、印刷NR $ 0 rsquo; lsquo&

次の例awkは:

のコードは次の通りである:

要件:

ファイル:TEXT.TXT形式:

WEB01 [192.168.2.100]

のhttpd OK

TomcatのOK

のsendmail
OK

WEB02 [192.168.2.101]

のhttpd OK

接尾OK

web03 [192.168.2.102]

のmysqld OK < BR>

のhttpd OK

awkはして出力形式を変更する必要があります。

WEB01 [192.168.2.100]:httpdのOK

WEB01 [192.168.2.100]: TomcatのOK

WEB01 [192.168.2.100]:sendmailのOK

WEB02 [192.168.2.101]:httpdのOK

WEB02 [192.168.2.101]:postfixのOK

web03 [192.168.2.102]:mysqldのOK

web03 [192.168.2.102]:httpdのOK

分析:

分析が含まれている&'する必要が見つけ、ウェブ'行スキップされたが、その後、コンテンツは、単一のラインとしてライン以下にする必要があります。

[chengmo @シェルcentos5] $のAWK‘ /^ウェブ/{T = $ 0;次;} {印刷T': \\ T' $ 0;}’ test.txtの

WEB01 [192.168.2.100]:httpdのOK

WEB01 [192.168.2.100]:tomcatにOK

WEB01 [192.168.2.100]:sendmailのOK

WEB02 [192.168.2.101 ]:httpdのOK

WEB02 [192.168.2.101]:postfixのOK

web03 [192.168.2.102]:mysqldのOK

web03 [192.168.2.102]:httpdのOK < BR>

は、上記の方法を使用すると、次の発生した場合、それは自動的に複数行の統合を達成するためにスキップします、テキストに次の文を使用して、導入awkはLinuxのマルチラインの統合を使用するように循環が一致するには非常に便利です。

Copyright © Windowsの知識 All Rights Reserved