ホームページ php教程 PHP开发 よく使用される awk コマンド

よく使用される awk コマンド

Dec 15, 2016 am 10:44 AM
awkコマンド

awk の使用法: awk ' pattern {action} '

変数名の意味
ARGC コマンドライン引数の数
ARGV コマンドライン引数の配列
FILENAME 現在の入力ファイル名
現在のファイル内の FNR レコード番号
FS 入力フィールド分離文字、デフォルトはスペースです
RS 入力レコード区切り文字
NF 現在のレコードのフィールド数
NR これまでのレコード数
OFS 出力フィールド区切り文字
ORS 出力レコード区切り文字

1, awk '/101/' ファイル 一致する行を表示ファイル file に 101 が含まれています。
awk '/101/,/105/' ファイル
awk '$1 == 5' ファイル
awk '$1 == "CT"' ファイル 二重引用符が必要であることに注意してください
awk '$1 * $2 >100 ' ファイル
awk '$2 >5 && $2


2、awk '{print NR,NF,$1,$NF,}' file は、現在のレコード番号、ドメイン番号、および各行の最初の行を表示します。ファイル ファイルと最後のドメイン。
awk '/101/ {print $1,$2 + 10}' file は、ファイル file + 10 の一致する行の最初と 2 番目のフィールドを表示します。
awk '/101/ {print $1$2}' file
awk '/101/ {print $1 $2}' file ファイル file の一致する行の最初と 2 番目のフィールドが表示されますが、間に区切り文字はありませんフィールド。


3. df | awk '$4>1000000 ' 条件を満たす 4 番目のフィールドの行を表示するなど、入力を取得します。


4. awk -F "|" '{print $1}' ファイルは新しい区切り文字 "|" に従って動作します。
awk 'BEGIN { FS="[: t|]" }
{print $1,$2,$3}' file 入力区切り文字 (FS="[: t|]") を設定して、入力区切り文字を変更します。

Sep="|"
awk -F $Sep '{print $1}' ファイルは環境変数 Sep の値を区切り文字として使用します。
awk -F '[ :t|]' '{print $1}' ファイルは正規表現の値を区切り文字として使用します。ここでは、スペース、:、TAB、および | を同時に区切り文字として表します。
awk -F '[][]' '{print $1}' ファイルは正規表現の値を区切り文字として使用し、ここでは [,]


5 を表します。awk -f awkfile ファイルは、シーケンス制御内のファイル awkfile。
猫の awkfile
/101/{print "


8. awk 'BEGIN { max=100 ;print "max=" max} " BEGIN は、行を処理する前に実行される操作を表します。
{max=($1 >max ?$1:max); print $1,"Now max is "max" file ファイルの最初のフィールドの最大値を取得します。
(式 1? 式 2: 式 3 は次と同等です:
if (式 1)
式 2
else
式 3
awk '{print ($1>4 ? "high "$1: " low "$1)} ' file


9, awk '$1 * $2 >100 {print $1}' file は、ファイル内の最初のフィールドが 101 と一致する行 (レコード) を表示します。


10, awk '{$1 == 'Chi ' {$3 = 'China'; print}' ファイル 一致する行を見つけたら、行 (レコード) を表示する前に 3 番目のフィールドを置き換えます
awk '{$7 %= 3; print $7}' ファイル、残りを 7 番目のフィールドに代入して、 awk '/tom/ {wage=$2+$3; printf raise}' file 一致する行を見つけたら、変数に値を代入します


。 12, awk '/tom/ {count++;}

END {print "tom was found "count"times"}' file END は、すべての入力行が処理された後の処理を意味します



13. awk 'gsub(/$/, "");gsub(/,/,"");

END {print "合計は $" コスト>"ファイル名"}' $ and を置き換えて、結果をファイル名に出力します

1 2 3 $1,200.00
1 2 3 $2,300.00
1 2 3 $4,000.00

awk '{gsub(/$/,"");gsub(/,/, "" );
if ($4>1000&&$4 else if ($4>2000&&$4 else if ($4>3000&&$4 else c4+=$4; =[%d];c2=[%d];c3=[%d];c4=[%d]n",c1,c2,c3, c4}"' ファイル
if と else if を使用して条件文を完成させます

awk '{gsub(/$/,"");gsub(/,/,"");
if ($4>3000&<4<4000 ) }
END {printf; "c1=[%d];c2=[%d];c3=[%d];c4=[%d]n",c1,c2,c3 ,c4}"' ファイル
exit を通じて特定の条件下で終了します。ただし、END 操作は実行されます。
awk '{gsub(/$/,"");gsub(/,/,"");
if ($4>3000) next
else c4+=$4; }
END {printf "c4=[% d]n",c4}"' file
next までの特定の条件で行をスキップし、次の行の操作を実行します


14, awk '{ print FILENAME,$0 }' file1 file2 file3>fileall file1 を変更します。 , File2とFile3のファイル内容は全てFileAllに書き込まれます
ファイルと先頭のファイル名を出力します ,index($0," ") +1)>$1}' fileall 結合したファイルを3つのファイルに再分割します。


16, awk 'BEGIN {"date"|getline d; print d}' パイプライン経由で getline に送信し、変数 d に代入して出力します。それ。


17. awk 'BEGIN {system("echo "Input your name:\c""); getline d;print "nYour name is",d,"b!n"}'
getline コマンドを使用して対話的に名前を入力します、そしてそれを見せてください。
awk 'BEGIN {FS=":"; while(getline0) { if($1~"050[0-9]_") print $1}}'
Print /etc/ passwd ファイル内のユーザー名には、ユーザー名 050x_ が含まれています。

18. awk '{ i=1;while(i awk '{ for(i=1;i type file|awk -F "/" '
{ for(i=1;i { if(i==NF-1) { printf "%s",$i }
else { printf "%s/",$i } }}' ファイルのフルパスを表示します。
日付を表示するには for と if を使用します
awk 'BEGIN {
for(j=1;j<=12;j++)
{ flag=0;
printf "n%dmonthn",j; ;i<=31;i++)
)&&i>30) flag=1;
if (flag==0) {printf "%02d%02d ",j,i}
}
}
}'


19 awk でのシステム変数の呼び出しは一重引用符で行う必要があります。二重引用符の場合は、文字列

Flag=abcd

awk '{print '$Flag'}' を意味します。結果は abcd
awk '{print "$Flag "}' 結果は $Flag です

上記は chinaunix から転送され、以下は私自身の要約です:

合計:

$awk 'BEGIN{total=0}{total+=$4}END{print total}' a.txt -----a.txt ファイルの 4 番目 フィールドを合計します。

$ awk '/^(no|so)/' test-----モード no または so で始まるすべての行を出力します。

$ awk '/^[ns]/{print $1}' test-----レコードが n または s で始まる場合、このレコードを出力します。

$ awk '$1 ~/[0-9][0-9]$/(print $1}' test-----最初のフィールドが 2 つの数字で終わっている場合、このレコードを出力します。

$ awk '$1 == 100 || $2 $ awk '$1 != 10' test - ----最初のフィールドが 10 に等しくない場合は、行を出力します

$ awk '/test/{print $1 + 10}' test-----レコードに正規表現テストが含まれている場合、最初のフィールドに 10 を追加して出力します。

$ awk '{print ($1 > 5 ? "ok "$1: "error"$1)}' test-----最初のフィールドの方が大きいかどうか。 5 よりも大きい場合は、疑問符の後の式の値を出力します。それ以外の場合は、コロンの後の式の値を出力します。

$ awk '/^root/,/^mysql/' test----通常のレコードで始まるレコードを出力します。正規表現 mysql で始まる新しいレコードが見つかった場合は、正規表現 mysql で始まる次のレコード、またはファイルの最後まで出力を続けます。よく使用される awk コマンドに関連する記事については、PHP 中国語 Web サイトにご注意ください

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)