awk命令
语法:
awk 选项 ‘partern{action 代码}’ 文件名
读取一行,然后看partern能否匹配,如果匹配成功,就执行{}内的操作,然后继续进行下一行;BEGIN{}在所有行动前先执行; END{}在所有行动后执行。
选项:
-F:分隔符,把行分隔,默认按空格分隔,把连在一起的分隔符当做整体
pattern
1. 选行;NR<10表示行号小于10
2. 计算;awk '{ sum = $2 + $3; print $0, sum }' file.txt
3. 条件匹配;awk '/Error/ { print }' file.txt
4. 条件;awk '$1 > 0 {print}' test
action
print $1,$NF 打印
变量:
- NR表示当前是第几行
- NF表示当前有多少段
- FILENAME表示当前文件名
- $1、$2表示第几个字段
函数
tolower():字符转为小写。
length():返回字符串长度。
substr():返回子字符串。
sqrt():平方根。
rand():随机数。
awk -F ':' '{ print toupper($1) }' demo.txt
条件
awk '$1 > 0 {print}' test
满足就执行后面{}中的操作
if条件
awk -F ':' '{if ($1 > "m") print $1; else print "---"}' demo.txt
浙公网安备 33010602011771号