linux AWK

1707 ワード

awkスタイルスキャンと処理ツールは、主にメッセージとテキストファイルからパケットを抽出するために使用されます.awkは情報を抽出した後、他のテキスト操作を行うことができ、完全なawkスクリプトは通常、テキストファイルの情報をフォーマットするために使用されます.
1.awkの呼び出し方法
awk [-F field-separator] 'commands' fileName

[-Fドメイン区切り記号]はオプションです.a w kはデフォルトのドメイン区切り記号としてスペースを使用するため、ドメイン間にスペースがあるテキストを参照する場合は、このオプションを指定する必要はありません.
ただし、passwordファイルなどのドメインを区切り記号としてコロンで参照する場合は、次のような-Fオプションを指定する必要があります.
awk -F:\ passwed.sh

2.awkの組成
awkにはモードとアクションがあり、1つのawkスクリプトに多くの文がある可能性があります.「≪モード|Mode|emdw≫」セクションでは、アクション文がイベントをトリガーおよびトリガーするタイミングを決定します.処理とは、データに対する操作です.モード部を省略すると、動作は時刻を実行状態に保つ.モードは、任意の条件文または複合文または正規表現です.モードには、BEGINとENDの2つの特殊なフィールドがあります.BEGIN文を使用して、カウントと印刷ヘッドを設定します.BEGIN文は、任意のテキストブラウズ動作の前に使用され、その後、テキストブラウズ動作は入力ファイルに従って実行されます.END文は、awkがテキストブラウズ動作を完了した後に、出力テキストの総数と終了ステータスフラグを印刷するために使用されます.特にモードが指定されていない場合、awkは常にロー数を一致または印刷します.実際の動作は括弧{}内で示されます.アクションの多くは印刷に使用されますが、if文やループ終了構造などのより長いコードもあります.動作を指定しないとawkはブラウズしたすべてのレコードを印刷します.
注意:BEGINとENDは大文字でなければなりません
3.抽出データ
awk実行時、ブラウズドメインタグは$1,$2,$3,$n,すべてのドメインを印刷するように$0を使えばよい.
たとえば、次のテキストがあります.
[lgm@localhost ~]$ cat text.txt
lby/23/  
dtt/22/  

 
記録の形式は「氏名/年齢/学歴」であり、「/」を分割記号とする.
1)名前と学歴を抽出する
[lgm@localhost ~]$ awk -F\/ '{print $1"\t"$3}' text.txt  //"\t"   TAB 
lby    //    
dtt   

      
2)全ての情報を抽出する結果をresultと入力.txtファイル内
上記の入力方法は画面に表示する、画面に表示する必要がある場合はresultに印刷する.txtファイルでは、以下の方法で
awk '{print $0}' text.txt | tee result.txt
lby/23/   //    
dtt/22/   
awk  'gsub("/","\t"){print $0}' //     " "(  TAB )   "/"
gsub awk