1.
shell中输出带颜色的效果时需要echo -e ,其中字体颜色是3X的,背景颜色是4X的
2.
awk 最外面使用单引号,里面使用双引号。一律这样写防止乱
3.
printf "%-20s %-20s\n", $1,$NF
-表示左对齐,+表示右对齐,默认右对齐 20s表示共20个字符长度
4.
####NR 与 FNR 的区别
[root@xuegod63 ~]# awk '{print NR"\t" $0}' /etc/hosts /etc/hostname
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
3 192.168.1.63 xuegod63.cn
4 192.168.1.64 xuegod64.cn
5 192.168.1.64 xuegod62.cn
67 xuegod63.cn
[root@xuegod63 ~]# awk '{print FNR"\t" $0}' /etc/hosts /etc/hostname
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
3 192.168.1.63 xuegod63.cn
4 192.168.1.64 xuegod64.cn
5 192.168.1.64 xuegod62.cn
6
1 xuegod63.cn
注:对于 NR 来说,在读取不同的文件时,NR 是一直加的 ; 对于 FNR 来说,在读取不同的文件时,它读取下一个文件时,FNR 会从 1 开始重新计算的
5.
匹配,使用 awk 查出以包括 root 字符的行 , 有以下 3 种方法
[root@xuegod63 ~]# awk -F: "/root/{print}" /etc/passwd
[root@xuegod63 ~]# awk -F: "/root/" /etc/passwd
[root@xuegod63 ~]# awk -F: '/root/{print $0}' /etc/passwd
6.
变量
(1)用-v 指定 var=value 变量名区分大小写的
(2)在程序中直接定义
(3)在 awk 里,使用变量不用加$符号。
[root@xuegod63 ~]# var="test"
[root@xuegod63 ~]# awk 'BEGIN{print "'$var'"}' #引用变量时,使用单引号+双引号括起来
test