[关闭]
@llplmlyd 2019-09-30T16:32:36.000000Z 字数 1017 阅读 923

awk

Linux


  1. awk [-F 分隔符separator] '[/pattern/]{command}' filename
  2. Attention:命令行中除了变量之外的常量需要加双引号引用
  1. awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… }' file ...

分隔符 -F

默认是空格

awk常用内置变量

  1. 使用每一个参数 需要在参数前加 -v
  2. awk -v FS='xxx' -v OFS='----' '/pattern/{command}' filename
  3. '[/pattern/]{command}'
  4. NR 文件当前行的行号 number of rank
  5. NF 文件当前行的列数(有几列)number of field
  6. 输出每次处理的行号,以及当前行以“:”分隔的字段个数
  7. OFS output field separator输出文件的行号分隔符
  8. FS 输入字符分隔符
  9. RS record Separator 输入记录分隔符 指定换行符原换行符仍有效
  10. ORS 输出文本的记录分隔符
  11. FNR 行号 后可跟多个文件,第二个文件行号继续的哥文佳安最后行号开始
  12. ARGC 命令行参数个数
  13. ARGV 数组

print

  1. # 连续打印,使用空格连接两个变量 如
  2. aaa bbb
  3. {print $1 $2}
  4. aaabbb
  5. # 分隔打印,使用逗号连接两个变量
  6. aaa bbb
  7. {print $1 $2}
  8. aaa bbb

printf

  1. # 格式符
  2. %c 显示字符的ASCII
  3. %d, %i 显示十进制整数
  4. %e, %E 显示科学计数法数值
  5. %f 显示为浮点数,小数
  6. %g, %G 以科学计数法或浮点形式显示数值
  7. %s 显示字符串
  8. %u 无符号整数
  9. %% 显示% 自身
  10. # 修饰符 放在 % 与字母之间
  11. - 左对齐 默认为右对齐
  12. + 显示数值的正负号
  13. # 操作符
  14. - 算数操作符 +-*/ 用在命令{}括号内
  1. printf "FORMAT", item1,item2, ...
  2. # printf 打印表格
  3. # %20s 输出20个字符,如果变量字符数不够则用空格补齐
  4. # %- 左对齐
  5. awk -F: 'printf "%-20s|%-15s\n" $1,$2' /etc/passwd

begin end

  1. awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… }' file ...

变量

  1. $0 整一行
  2. $1

/pattern/

  1. 'NR==number{command}'
  1. /pattern/
  1. /pattern/, /pattern/
  2. NR==number1NR==number2
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注