?
awk单独拿出来写了这篇笔记是因为它是在太强大了,简直就是一门脚本语言。
?
入门篇 写道
# 数值计算
echo | awk '{print 19+7}' # 25
# 字符分割,-F指定分割符号,下例为"_"。如果不指定-F参数则使用空格分割
echo A_B_C | awk -F "_" '{print $1}' ?# A
#字符串函数
echo ?"apple banana dog" ?| awk ?'{print ?substr($1, 1, 5) ?}' # apple
#求和,对my.txt的第一列数值求和:
my.txt
-----
1 a
2 b
3 c
cat my.txt |?gawk '{ sum += $1 }; END { print sum }'?
echo | awk '{print 19+7}' # 25
# 字符分割,-F指定分割符号,下例为"_"。如果不指定-F参数则使用空格分割
echo A_B_C | awk -F "_" '{print $1}' ?# A
#字符串函数
echo ?"apple banana dog" ?| awk ?'{print ?substr($1, 1, 5) ?}' # apple
#求和,对my.txt的第一列数值求和:
my.txt
-----
1 a
2 b
3 c
cat my.txt |?gawk '{ sum += $1 }; END { print sum }'?
?
?
?
?
变量名 含义?
ARGC 命令行变元个数?
ARGV 命令行变元数组?
FILENAME当前输入文件名?
FNR 当前文件中的记录号?
FS 输入域分隔符,默认为一个空格?
RS 输入记录分隔符?
NF 当前记录里域个数?
NR 到目前为止记录数?
OFS 输出域分隔符?
ORS 输出记录分隔符?
应用笔记?
# 字符串分割。根据"_"
ls | awk -F "_" '{print $1F}'
#删除某列,并输出
zcat xx.gz | awk '{$1 = null ;print}'
#输出最后一列
cat a.txt |?awk '{print $NF}')
#输出倒数第二列
cat a.txt |?awk '{print $(NF-1)}')?
ls | awk -F "_" '{print $1F}'
#删除某列,并输出
zcat xx.gz | awk '{$1 = null ;print}'
#输出最后一列
cat a.txt |?awk '{print $NF}')
#输出倒数第二列
cat a.txt |?awk '{print $(NF-1)}')?
?
?
?