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
だけです。string
var
算術演算子
、、、などの算術演算子はでawk
使用できます。、変数の追加from toを使用します。+
-
*
/
%
awk '{ var = var + 1;print var " # " $0 }' awktest.txt
+
var
0
9
システム変数
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 Number
1 と 7 の 2 行に 5 があることがわかります。Field Number
sed
: 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.txt
2 つのファイルには 1 から始まる番号が付けられていることがわかります。
関係演算子
<
、>
、<=
、>=
、==
、!=
、~
(一致) は!~
すべて関係演算子です。
ブール演算子
&&
、、||
は!
ブール演算子です。
この記事は8月の11日目の学習ノートで、内容はGeek Timeの「Linux実践スキル100講座」から引用しています。