Shell编程(六)awk工具 1. {print} 2. 计算 3. Regular Expression (正则表达式)

coins.txt

gold     1    1986    USA            American Eagle
gold     1    1968    Austria        Franz Josef 100 Korona
silver  10    1964    USA            ingot
gold     1    1956    Switzeland     ingot
awk '{print}' coin.txt 

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.1 {print $x}: 打印第x列

awk '{print $1}' coin.txt 

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.2 用制表键对齐

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.3 打印行号 (NR)

awk '{print NR "	" $1 "	" $2 "	" $3}' coin.txt

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.4 打印列号 (NF)

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.5 查找功能(某行数据)

awk '$3==1986{print $0}' coin.txt 

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.6 自定义分隔符

输入分隔符:FS

awk 'BEGIN{FS=","} {print $1, $2}'

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

输出分隔符:OFS

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.7 打印多文件

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

1.8 某列不想显示

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

2. 计算

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3. Regular Expression (正则表达式)

3.1 /abc/

data2.txt

abc
xxabc
xxabcxx
a bc
ab c
a b c
a.c
a c

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.2 /a.c/

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.3 /a.c/

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.4 ^ 和 $

/^abc/: 可以匹配 abcxxxxx

/abc$/: 可以匹配 xxxxxabc

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.5 [ ]

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.6 [^abc]: 表不是abc

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.7 * 和 + : 匹配0-N次和至少匹配1次

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.8 ?: 可以有可以没有

 Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.9 {}: 控制次数

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)

3.10 (): 看成整体

Shell编程(六)awk工具
1. {print}
2. 计算
3. Regular Expression (正则表达式)