grep,sed,awk三剣客(復習)
2710 ワード
grepは強力なテキスト検索ツールで、正規表現を使用してテキストを検索し、一致する行を印刷するオプションです.
sed sedは、1行のコンテンツを一度に処理するオンラインエディタです.処理時には、現在処理する行を一時バッファに格納し、「モードスペース」(pattern space)と呼ばれ、次にsedコマンドでバッファ内のコンテンツを処理し、処理が完了したら、バッファの内容を画面に送ります.次に、ファイルの最後まで次の行を処理します.ファイルの内容はリダイレクトストレージ出力を使用しない限り変更されません.オプション:
コマンド:
置換:
awkはsedに比べて常に1行全体の処理に作用し,awkは1行に数個の『フィールド』に分けて処理する傾向にある.従って、awkは小型のデータデータ処理の動作原理を処理するのにかなり適している:第一歩:BEGIN{commands}文ブロックの文を実行する;ステップ2:ファイルまたは標準入力(stdin)から1行を読み出し、pattern{commands}文ブロックを実行します.ファイルがすべて読み込まれるまで、1行目から最後の行までファイルを1行ずつスキャンします.ステップ3:入力ストリームの最後に読み出されると、END{commands}文ブロックが実行されます.スクリプト構造:awk'BEGIN{print"start"}pattern{command}END{print"end"}'file(ファイル)オプション:
内蔵変数;
制御文:if文
while文
for文
awk文のフォーマット出力オプション:
awk文の組み込み関数
-a : binary text
-c : ' '
-i : ,
-n :
-v : , ' ' !
-s:
-w:
-o:
sed sedは、1行のコンテンツを一度に処理するオンラインエディタです.処理時には、現在処理する行を一時バッファに格納し、「モードスペース」(pattern space)と呼ばれ、次にsedコマンドでバッファ内のコンテンツを処理し、処理が完了したら、バッファの内容を画面に送ります.次に、ファイルの最後まで次の行を処理します.ファイルの内容はリダイレクトストレージ出力を使用しない限り変更されません.オプション:
-n∶ (silent) 。
-e∶ sed ;
-f∶ sed ,-f filename filename sed ;
-r∶sed 。
-i∶ , 。
コマンド:
a \"string": , string a
ewline
i \"string": , string i
ewline
d: i
p:
c:
s:
h: 。
g: , 。
q: Sed
r file:
w file:
=:
n: ,
置換:
g: 。
p: 。
w: 。
x: 。
y: ( )
\1:
&:
awkはsedに比べて常に1行全体の処理に作用し,awkは1行に数個の『フィールド』に分けて処理する傾向にある.従って、awkは小型のデータデータ処理の動作原理を処理するのにかなり適している:第一歩:BEGIN{commands}文ブロックの文を実行する;ステップ2:ファイルまたは標準入力(stdin)から1行を読み出し、pattern{commands}文ブロックを実行します.ファイルがすべて読み込まれるまで、1行目から最後の行までファイルを1行ずつスキャンします.ステップ3:入力ストリームの最後に読み出されると、END{commands}文ブロックが実行されます.スクリプト構造:awk'BEGIN{print"start"}pattern{command}END{print"end"}'file(ファイル)オプション:
-F:
-v:var=value:
-f: awk
内蔵変数;
$n n , n 1 ,n 2 。
$0 。
FNR NR, 。
FS ( )
NF ,
NR ,
OFS ( )
RS ( )
ORS ( )
制御文:if文
awk -F: '{if($1~/mail/) print $1}' /etc/passwd ( )
awk -F: '{if($1~/mail/) {print $1}}' /etc/passwd ( )
awk -F: '{if($1~/mail/) {print $1} else {print $2}}'/etc/passwd (if...else...)
while文
awk -F: 'BEGIN{i=1} {while(i
for文
awk '{for(i=1;i<=NF;i++){print $i}}' /etc/password
awk文のフォーマット出力オプション:
%c: ASCII
%d:
%e:
%f:
%s:
%u:
%%: %
awk文の組み込み関数
rand():0 1
length():
split($0,A,":"): String A[1], A[2], . . ., A[n], n
substr(s,p): s p
substr(s,p,n): s p n