awk命令详解

awk命令是一个行处理命令,每次读取一行,然后进行处理,可以一次处理多个文件

awk命令格式:

awk [-F|-f|-v] ‘BEGIN{} {command1; command2} END{}’ file1 file2 ...

分割符:-F: , -F ':',-F '[.,/]' 三种方式都可以

awk命令内置变量:

  • $n:一行的第n个字段
  • $0:一行的全部内容
  • ARGC:命令行的参数个数
  • ARGV:命令行参数的数组
  • CONVFMT:数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组
  • ERRNO:最后一个系统错误的描述
  • FIELDWIDTHS:字段宽度列表(用空格键分隔)
  • FILENAME:文件名
  • FNR :各文件分别计数的行号
  • FS:字段分隔符(默认是任何空格)
  • IGNORECASE:忽略大小写的匹配
  • NF:字段个数
  • NR:处理的行数
  • OFMT:数字的输出格式(默认值是%.6g)
  • OFS :字段输出分隔符
  • ORS:行输出分隔符
  • RLENGTH:由match函数所匹配的字符串的长度
  • RS:记录分隔符(默认是一个换行符)
  • RSTART:由match函数所匹配的字符串的第一个位置
  • SUBSEP:数组下标分隔符(默认值是/034)

输出第一行

awk '{if(NR==1) {print $0}}' test.txt

输出最后一行

awk 'END{print }' test.txt

逆序输出行

将每一行都存入一个关联数组中,用行号作为数组索引(行号由NR给出)

awk '{line_info[NR]=$0} END{for(i=NR;i>0;i--){print line_info[i]}}' test.txt
原文地址:https://www.cnblogs.com/smallredness/p/9241831.html