AWK!

            awkはsedの機能は、状況の相互作用が存在しない場合に達成できるよりもより強力である強力な編集ツールです
かなり複雑なテキスト操作。

1.awk構文

     awkの[オプション] '印刷$ 1' ファイル名 

オプション

    区切り文字を指定-F

2は、awkの組み込み変数
          ・FS:フィールド区切りのテキストの各行を指定して、スペースまたは既定のタブストップ
          ・NF:現在の行(列数)を処理フィールドの数
          現在の行の処理の順序数を:・NR (行数)
          * $ 0:ライン現在処理行の全内容
         ・$ N:n番目現在処理場(第n列)

          印刷:印刷
 3は、AWKの使用
、使用中には、論理演算子&&、手段「および」||手段「または」可能性があります!これは「非アクティブ」を示し、また
そのような+、などの単純な数学演算、実行するために- 、*、/、%、^、それぞれ、加算、減算、乗算、除算、剰余を、退縮

4、AWKベーススペース、タブ、各行は、いくつかのフィールドに分割$ 1、$ 2で順次洗浄し、$ 3は、第1フィールド、第2フィールド、第3フィールドなどを表します。

================================================== =====================

[ルート@ localhostの〜]#猫awk.txt
abcgsg
バナー
年齢の
食品
の足を
より

010-123456
0791-1235677
IP 192.168.200.1
IP 192.168.200.111
IP 192.168.200.11
aBggfH
Bggsgs
gaglag1

印刷用紙

#1のawk [〜localhostのルート@] ' {}印刷' を示す印刷印刷awk.txt abcgsg バナー 年齢 フード フィート」 より 010 - 123456 0791 - 1235677 IP 192.168200.1 IP 192.168200.111 IP 192.168200.11 aBggfH Bggsgs gaglag1
コンテンツ出力線1-3 

[ルート@ localhostの〜]#のAWK ' (NR> = 1)&&(NR <= 3)} {印刷' awk.txt線がNR表す abcgsg バナー 年齢

出力線三1

 [ルート@ localhostの〜]#のawkのNR == 1 || NRの== 3 {印刷} 'awk.txt
  abcgsg
  年齢

 
すべてのベース行出力

[ルート@ localhostの〜]#のAWK '(NR 2%)1 == {}印刷' awk.txt%はモジュロ示し abcgsg 年齢 足' 0791 - 1235677 IP 192.168200.111 aBggfHの gaglag1の出力すべての偶数ライン [ルート@ localhostの
〜]#のAWK ' (NR%2)== 0} {印刷' awk.txt バナー 食品 より 010 - 123456 IP 192.168200.1 IP 192.168200.11 Bggsgs
最初の文字の出力は資産であります


[ルート@ localhostの〜]#件のawk ' / ^ [AZ] / {印刷} ' awk.txt Bggsgs
MEM:残りの多くのメモリ

[ルート@ localhostの〜]#無料 の総使用されるフリー共有BUFF / キャッシュ可能な MEM: 995 896 590 816 63260 8248 341 820 195436 スワップ: 2097148 27648 2069500 [ルート@ localhostの〜]#無料| awkは/ MEM:/ { ($。3/2 * $ 100)、 "%"印刷INT} ' $ 3は、3番目の列を示し、第2列は$ 2を表し 59

濾過フリー総容量

 [ルート@ localhostの〜]#無料| grepの'Memの:' | awkは'{$ 2印刷}'
 995896

过滤IP地址

[ルート@ localhostの〜]#ifconfigコマンドens33 ens33:フラグ = 4163 <UP、BROADCAST、RUNNING、マルチキャスト> MTU 1500 のinet 192.168200.115 ネットマスク255.255255.0は、 放送192.168200.255 INET6 FE80 :: 656c:1296:c062:6af7のprefixlen 64 scopeid 0x20の <リンク> エーテル00:0C:29:C3:ED:86 txqueuelen 1000年 (イーサネット) RXパケット4184の バイト15451491.4 MIB) RXエラーは0が 落ち0 オーバーランに0 フレーム0 TXパケットを2329 バイト257278251.2 KiBの) TXエラー0が 落ち0オーバーラン0 キャリアを0 衝突0 [ルート@ localhostの〜]#ifconfigコマンドens33 | AWK -F ' [:] + ' ' NR == 2 {$ 3印刷} ' 192.168200.115
1は、/ etc /抽出し、UIDは、ユーザ名情報とUIDの1000未満であるpasswdファイル

[ルート@ server0〜]#のAWK -F:'$は<1000 3 {$ 1を印刷し、$ 3} 'の/ etc / passwdの



2抽出/ etc / passwdファイル"/ binに/どの、環境シェルはbash"シェルのユーザー情報は、情報を持っている

[server0ルート@〜]#のawkの-F:NFの$ == "/ binに/ bashの" 1 {印刷$、$。 NFの} 'の/ etc / passwdの



3は、/ etc /抽出する第二列の第一行のユーザ名のうち、passwdファイル5情報

[ルート@ server0〜]#のAWKの-F:' 。(NR> = 1 && NR <= 5 。)1} {印刷$ 'の/ etc / passwdの



4。 印刷/ ET / passwdの奇数行

[server0ルート@〜]#のAWKの-F:'{IF(!NR%2 = 0)$ 0印刷} 'の/ etc / passwdの



5。 印刷UIDは、GIDのユーザ名と等しくない

[ルート@ server0〜]#のAWKの-F:' {IF印刷$ -1(。!$ 3 = $ 4) } 'の/ etc / passwdの
 

6つの。.AWK抽出されたユーザログのIPアドレス

[ルート@ fengxiaoli41〜]#WHO |尾- 1。 | awkの-F " [()] + "  ' {} 5印刷$。" 

192.16810.1

 

フィルタ/ etc / passwdファイル名

[ルート@ localhostの〜]#のawkの-F ' ' ' {} 1プリント$。' / etc / passwdファイル

ルート
ビン
デーモン
ADM
LP
同期

....

......

 

おすすめ

転載: www.cnblogs.com/cxm123123form/p/11456989.html