awk 学习总结

这是我在http://www.zsythink.net/archives/1336 的博客的一些摘抄 写等挺细致的 谢谢他
awk 的格式 awk [options] 'Pattern{Action}' file
pattern有 begin end 特殊模式 模式即为条件
action 有print printf "指定的格式" "文本1" "文本2" "文本3" .
option 有F# 或这 -v FS=’#‘ -v OFS=':'

  1. $NF 和 NF 要表达的意思是不一样的,对于awk来说,$NF表示最后一个字段,NF表示当前行被分隔符切开以后,一共有几个字段。
  2. $1这种内置变量的外侧不能加入双引号,否则$1会被当做文本输出
  3. awk '{print $1 $2}' 连接在一起输出。awk '{print $1,$2}' 以输出分隔符隔开后显示
  4. FS:输入字段分隔符, 默认为空白字符
    OFS:输出字段分隔符, 默认为空白字符
    RS:输入记录分隔符(输入换行符), 指定输入时的换行符
    ORS:输出记录分隔符(输出换行符),输出时用指定符号代替换行符
    NF:number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量
    NR:行号,当前处理的文本行的行号。
    FNR:各文件分别计数的行号
    FILENAME:当前文件名
    ARGC:命令行参数的个数
    ARGV:数组,保存的是命令行所给定的各参数
  5. awk就是这么规定的,'pattern{ action }'并不被看做是参数,awk被看做为参数。ARGV[0] 是awk ARGV[1] 是后面的文件
  6. 方法一:-v varname=value(shell传参) 变量名区分字符大小写。方法二:在program中直接定义(一半在begin里面定义)。
  7. awk 'NF==5{print $0}' test2 、空模式(匹配所有行)2、关系运算模式3、BEGIN/END模式 4 正则模式 5 行模式
  8. 当awk中使用了END模式时,如果执行了exit语句,那么exit语句之后的所有动作都将不会再被执行,END模式中的动作除外。
  9. 除了能够使用"exit命令"结束"整个awk",还能够使用"next命令"结束"当前行"
  10. 最常用的算数函数有rand函数、srand函数、int函数
    11.sub函数的作用理解为指定范围内的单次替换,只替换第一次匹配到的字符。 或者省略gsub函数中的第三个参数,省略gsub中的第三个参数时,默认为"$0",
    可以使用语法  "if(下标 in 数组名)" ,从而判断数组中是否存在对应的元素。
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!