Linux 学習のための awk 式

echo 'a : 1 : good : g' >> awkexpress.txt
echo 'b : 2 : well : w' >> awkexpress.txt
echo 'c : 3 : food : f' >> awkexpress.txt
echo 'd : 4 : hood : h' >> awkexpress.txt
echo 'e : 5 : bell : b' >> awkexpress.txt
echo 'o : 6 : toll : t' >> awkexpress.txt
echo '1 : a : good : g' >> awkexpress.txt
echo '2 : b : well : s' >> awkexpress.txt
echo '3 : c : food : f' >> awkexpress.txt

次の内容を入力します。

a : 1 : good : g
b : 2 : well : w
c : 3 : food : f
d : 4 : hood : h
e : 5 : bell : b
o : 6 : toll : t
1 : a : good : g
2 : b : well : s
3 : c : food : f

そこに書き込むawkexpress.txt
ここに画像の説明を挿入

代入演算子

=awk代入操作では、变量名 = 变量值変数に値を代入できます。それを変数に代入する
awk ' { var="string"; print var " # " $0 }' awkexpress.txtだけです。stringvar
ここに画像の説明を挿入

算術演算子

などの算術演算子はawk使用できます変数の追加from toを使用します+-*/%
awk '{ var = var + 1;print var " # " $0 }' awktest.txt+var09
ここに画像の説明を挿入

システム変数

FS: フィールドセパレータ
OFS: 出力フィールドセパレータ
NF: フィールド数、NF (Number: 数値; Field: フィールド)
NR: 各行のレコード番号。複数のファイルがある場合、レコードはインクリメントされます。
FNR: 複数のファイルがある場合、それらは互いに分離され、各ファイルは 1 から再び増加し始めます。

awk 'BEGIN{ FS=" : " }{ print $3,$4 }' awkexpress.txt空格+ :+空格をフィールド区切り文字として使用します。デフォルトでは、 OFS="空格"3 番目のフィールドと 4 番目のフィールドが画面に出力されます。
ここに画像の説明を挿入
awk 'BEGIN{ FS=" : " }{ print $3,$4 }' awkexpress.txtと同等ですawk 'BEGIN{ FS=" : ";OFS=" " }{ print $3,$4 }' awkexpress.txt
ここに画像の説明を挿入
awk 'BEGIN{ FS=" : ";OFS="/#"}{ print $3,$4}' awkexpress.txt空格+ :+で空格区切られた出力を第3个字段+“/#”+第4个字段画面に配置します。
ここに画像の説明を挿入

awk 'BEGIN{ FS=" : " }{ print $3,$4,"/#Field Number:" NF }' awkexpress.txt, ここで、NFは各レコードのフィールドの数です。
ここに画像の説明を挿入

awk 'BEGIN{ FS=" : " }{ print $3,$4,"/#Record Number:" NR }' awkexpress.txt各行のレコード番号が表示されますNR
ここに画像の説明を挿入

sed 's/g/g : wood/2' awkexpress.txt | awk 'BEGIN{ FS=" : ";OFS="===" }{ print $3,$4,"Field Number:" NF,"Record Number:" NR }'このコマンドはこれら 2 行の末尾にさらに追加するため、Record Number1 と 7 の 2 行に 5 があることがわかりますField Numbersed : wood
ここに画像の説明を挿入

awk 'BEGIN{ FS=" : " }{ print $3,$4,"/#Record Number:" NR }' awkexpress.txt awkexpress.txt, 2 つのファイルに 1 から均等に番号が付けられており、ファイルが分離されていないことがわかります。
awk 'BEGIN{ FS=" : " }{ print $3,$4,"/#Record Number:" FNR }' awkexpress.txt awkexpress.txt2 つのファイルには 1 から始まる番号が付けられていることがわかります。

ここに画像の説明を挿入

関係演算子

<><=>===!=~(一致) は!~すべて関係演算子です。

ブール演算子

&&、、||!ブール演算子です。
この記事は8月の11日目の学習ノートで、内容はGeek Timeの「Linux実践スキル100講座」から引用しています。

おすすめ

転載: blog.csdn.net/qq_42108074/article/details/132197468