awkコマンドでlinux

、awkは内蔵のパラメータ

$ 0:現在の行全体を表し

$ 1:最初のフィールドの各ライン

$ 2:第2フィールドの各ライン

$ N:N番目のフィールドの各行に

awkのパラメータ:区切り文字

  -Fセパレータセットセパレータ(デフォルトではスペース)  

単一のフィールドを印刷:

awkの-F ':' '' {$ 3印刷} / etc / passwdファイル

複数のフィールドを印刷:

AWK -F ':' '/ etc / passwdファイル' {$ 1、$ 3印刷}

AWK -F ':' '{のprintf( "ユーザー:%sのUID:%のSの\ n"、$ 1、$ 3)}' / etc / passwdファイル

awkの-F ':' '{印刷 "ユーザー:" $ 1 "\ tの" UID: "$ 3"}' / etc / passwdファイル

  NR:それぞれの行番号

  NF:フィールドの数

AWK -F ':' '{印刷NR、NF、FILENAME} / ECT / passwdの

 

ケース#:

1は、/ etc / passwdのユーザ名IDは、行番号とユーザ名100よりも大きいです

AWK -F ":" '{IF($ 3>の100)印刷NR、$ 1}' / etc / passwdファイル

AWK -F ":" '$ 3>の100 {印刷NR、$ 1}' / etc / passwdファイル

訪問の43.226.164.120日:2、ログサーバのIPを見つけます。

sedの-n '/43.226.164.120/p' assess_log | awkの ' '{印刷SUBSTR($ 4,2)}' 

awkの/43.226.164.120/{printのSUBSTR($ 4,2)} 'assess_log

 

二、awkの決意ロジック式:

  • 〜正規表現にマッチします
  • 〜正規表現に一致しないでください
  • ==等しいです
  • =等しくありません
  • <未満
  • >より大きい

awkの-F ':'。 '$ 1〜/ ^メートルの* {$ 1印刷}' / etc / passwdファイルの印刷開始メートルのユーザ名

awkの-F ':'! '$ 1〜/ ^メートルの* {$ 1印刷}' の/ etc / Mのユーザー名を始めて印刷しないpasswdの

三、awkの拡張フォーマット

コマンド拡張機能

   {プリント "スタート" を} BEGINパターン{AWK命令} END {プリント "終了"}

ケース番号:タブは、行ごとにユーザ名/ etc / passwdファイルの行番号、行あたりの列の数、対応する行を表示します

awkの-F ':'「BEGIN { "ユーザラインコル"} {$ 1印刷、NR、NF} END {印刷 "-------------" FILENAME "------- ------ "}」/ etc / passwdファイル

ケース#:フォルダ占有サイズが現在のフォルダ内の統計情報ファイル/

-al LS | awkの{数+ = $ 5} END {印刷回数} {= 0を数える} BEGIN "

-al LS | awkのBEGIN {カウント= 0} {カウント+ = $ 5} END {プリント枚数/ 1024/1024 "M"} '

統計は、#の/ etc総数/ passwdのアカウントを表示します

AWK -F ':' 'BEGIN {++カウント} {カウント= 0} END {印刷枚数}' / etc / passwdファイル

awkの-F ':' $ 1〜/ ^ $ / {数++} END {印刷回数} '/ etc / passwdファイルの空白行を除外し{= 0カウント} BEGIN'!

統計は、#の/ etcユーザ名がUIDで100以上/ passwdファイルであることを示します

AWK -F ':' $ 3>の100 '/ etc / passwdファイル' {$ 1印刷}

AWK -F ':' {印刷I、[i]は、ユーザのための(; iはカウント<I ++はI = 0)} 'の/ etc / $ 3>の100 {ユーザ[カウント++] = $ 1} END {= 0をカウント} BEGIN' passwdの

#各IPが表示されたログaccess_logの数を数えます

access_logのAWK '{(ARRでキー)、印刷キー、ARR [キー]を} {ARR [$ 1] ++} END'

 

 

AWKとsedのコントラスト

1、AWKやテキストを扱うことができるのsed

2は、awkの複雑なロジックに集中します

通常のプロセスで3、sedの焦点

4、AWK及びSEDは、一緒に使用することができます

 

インタビューの質問

1、]、[ファイル名のAAAを変更するには、ファイル名でAAAを含むディレクトリ内のすべてのファイルを変更します

見つけます。-name "* AAA *" -execリネームのAAA AAA {} \。

2、AAAを含むすべてのファイルの改変ディレクトリは、ドキュメントの内容を変更するように変更されているの[AAA]

 SED -i 'S / AAA / AAA / G' 'はgrep AAA -rl.`バッククォート

、文書の内容を変更しない-iを使用して、ファイルを見て自身のsed

 

おすすめ

転載: www.cnblogs.com/wuzm/p/10956216.html