linux awkコマンド使用の心得-ベースコマンド


このツールは、テキストファイルを行ごとに読み込み、読み込みテキストをスライス(デフォルトはスペースで区切られています)した後、次の行を読み込み、使用できます.フォーマットレポート生成ツールで、テキストを処理します.
現在、linuxで使用されているawkはgawk(オープンソースawk)で、awkと略記されています.
使用方法:
#awk [options] 'script' file,file2,…
#awk [options] 'PATTERN {action }' filelist

参照すると、各行は$1から始まり、$0は現在の行で、改行で行が終わります
一般的にはawk'{print$1}'ファイル
      
常用options:
-F:指定フィールド区切りawk-F:'{print$1}'/etc/passwd
-v:変数に初期値を割り当てる
print関数:
印刷内容、改行付き
printf関数:
改行なしで印刷内容をフォーマットするには、次のフォーマットが必要です.
awk'{printf"フォーマット"$1}'ファイル
フォーマットは次のとおりです.
%で始まる
%c      ASCII 
%d,%i:    
%e,%E          
%g,%G                    
%f      
%u      
%%   %  
%s      

修飾子
N , %10s,       10 ,    
-:   ,     
+:      

linux1:/home/test #awk '{printf "%-15s %i
",$1,$2}' 1 welcome         0 hello           0

出力リダイレクト
Print items > output-file
Print items >> output-file
Print items | command
特殊ファイル記述子
/dev/stdin:標準入力
/dev/stdout標準出力
/dev/stderr:エラー出力
/dev/fd/N特定のファイル記述子、例えば/dev/stdinは/dev/fd/0に相当する
例:
linux1:/home # awk -F: '{printf "%-15s %i
",$1,$3>"/dev/stderr"}' /etc/passwd root            0 bin             1 daemon          2 lp              4 mail            8 games           12 wwwrun          30 ftp             40 nobody          65534