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 打印

变量:

  1. NR表示当前是第几行
  2. NF表示当前有多少段
  3. FILENAME表示当前文件名
  4. $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

posted @ 2026-05-08 16:55  光可遇  阅读(13)  评论(0)    收藏  举报