0.AWK常变量含义
常变量名 | 含义 |
ARGC | 命令行变元个数 |
ARGV | 命令行变元数组 |
FILENAME | 当前输入文件名 |
FNR | 当前文件中的记录号 |
FS | 输入域分隔符,默认为一个空格 |
RS | 输入记录分隔符 |
NF | 当前记录里域个数 |
NR | 到目前为止记录数 |
OFS | 输出域分隔符 |
ORS | 输出记录分隔符 |
1、统计文本中单词数量,并进行排序
grep -Eo "[a-z|A-Z]+" words.txt|awk '{word_cound[$1]++}END {for(aword in word_cound){print aword,word_cound[aword]|"sort -rn -k2"}}'
2、电话号码验证
规则:
A、(xxx) xxx-xxxx
B、xxx-xxx-xxxx
grep -Eo '^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$' phonelist.txt
3、行列转换
awk '{for(i=0;++i<=NF;)t[i]=t[i]?t[i] FS $i:$i}END {for(i=0;i++<NF;)print t[i]}' transport.txt
4、输出第10行
awk 'NR==10{print}' tenth.txt