awk 学习总结-变量/分隔符

1 awk 语法

awk [options] 'Pattern{Action}' file

  1. awk 对文件处理方式为逐行扫描处理
  2. 举例:awk '{print "用户名:" $1,$3}' /etc/passwd 变量用逗号隔开
  3. $0为全行,NF为被分隔符分割的数量,$NF为最后一行,$NF-1为倒数第二行,以此类推。

2 awk 模式

Pattern

  1. 特殊模式   awk 'BEGIN{print "aaaa","bbbb"}' file  #在处理file之前提前打印指定内容。awk 'END{print "aaaa","bbbb"}' file #在处理file之后打印指定内容
3 分隔符

FS :field separator
OFS:output field separator

  1. 默认输入/输出分隔符为空格,即awk以空格为准对每一行进行分割。
  2. 设置输入分隔符有两种方式,-F='#'     -v FS='#'
  3. 变量间有逗号,输出时以空格分隔。
4 变量总结

变量使用前需要加参数 -v
  1. FS OFS,输入输出
  2. NR 行号,当前文本处理的行号
  3. FNR ,处理多个文件时分别显示行号
  4. RS ,输入行分隔符,默认是指定回车而换行, -v RS=" ",指定遇空格换行,换而言之,指定了空格为换行符。
  5. ORS , 输出行分隔符,需要换行则输出回车,-v ORS="***",需要换行时则输出***,替代了之前的回车。
  6. ARGC与ARGV ,数组变量,ARGV[0]代表awk,ARGV[1]代表文件1,ARGV[2]代表文件2,以此类推。ARGC代表数组的参数数量,即ARGV的长度。
  7. 自定义变量,(1)awk -v myvar="23w" 'BEGIN{print myvar}'  输出23w (2)awk 'BEGIN{myvar="23w";print myvar}' 输出23w 两种定义方式。第一种可以引用shell中的变量。var=123 换行 awk -v myvar=$var 'BEGIN {print myvar}' 输出 123

评论

此博客中的热门博文

vmware esxi 安装运行与raid卡固件兼容性问题

bash学习随笔