linux-awk简介

linux-awk

awk由三个人开发
有多种版本:New awk(nawk),GNU awk( gawk)
gawk:模式扫描和处理语言
每读入一行,处理一行,处理各种文本信息,接受标准输入,可跟文件 和 程 序
自动切割处理的行,以空格符为准,支持数字运算awk运算速度更快 可用time 查询
只要不是变量的字符需要表示原译需要双引号
还有三种语句块使用,针对处理前,处理,处理后
定义变量,所有变量先声明在使用
其会

awk语言

基本格式:awk【选项】‘程序’文件
程分分两个部分pattern和action

  1. pattern决定动作语句何时触发及触发事件 如BEGIN在执行前执行,不加此位未标记位当处理内容,END处理结束后在执行

  2. action statements对数据进行处理,放在{}内指明
    默认 空格符为 分隔符 ,可直接调用

awk常见用法

awk [options] ‘program’ var=value file…
awk [options] -f programfile var=value file…
awk [options] ‘BEGIN{action;… }pattern{action;… }END{action;… }’ file …

awk变量

变量:内置和自定义变量 

  • FS:输入字段分隔符,默认为空白字符
    awk -v FS=’:’ '{print $1,FS,$3}’ /etc/passwd awk –F: '{print $1,$3,$7}’ /etc/passwd 
  • OFS:输出字段分隔符,默认为空白字符
    awk -v FS=‘:’ -v OFS=‘:’ ‘{print $1,$3,$7}’ /etc/passwd  RS:输入记录分隔符,指定输入时的换行符 awk -v RS=’ ’ ‘{print }’ /etc/passwd 
  • ORS:输出记录分隔符,输出时用指定符号代替换行符
    awk -v RS=’ ’ -v ORS=’###’‘{print }’ /etc/passwd 
  • NF:字段数量
    awk -F:‘{print NF}’ /etc/fstab 引用变量时,变量前不需加$ awk -F:‘{print $(NF-1)}’ /etc/passwd 
  • NR:记录号
    awk ‘{print NR}’ /etc/fstab ; awk END‘{print NR}’ /etc/fstab
  • FNR:各文件分别计数,记录号
    awk ‘{print FNR}’ /etc/fstab /etc/inittab 
  • FILENAME:当前文件名
    awk '{print FILENAME}’ /etc/fstab 
  • ARGC:命令行参数的个数
    awk '{print ARGC}’ /etc/fstab /etc/inittab awk ‘BEGIN {print ARGC}’ /etc/fstab /etc/inittab 
  • ARGV:数组,保存的是命令行所给定的各参数
    awk ‘BEGIN {print ARGV[0]}’ /etc/fstab /etc/inittab awk ‘BEGIN {print ARGV[1]}’ /etc/fstab /etc/inittab

你可能感兴趣的:(linux,基础)