@llplmlyd
2019-09-30T08:32:36.000000Z
字数 1017
阅读 1135
Linux
awk [-F 分隔符separator] '[/pattern/]{command}' filenameAttention:命令行中除了变量之外的常量需要加双引号引用
awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… }' file ...
默认是空格
使用每一个参数 需要在参数前加 -vawk -v FS='xxx' -v OFS='----' '/pattern/{command}' filename'[/pattern/]{command}'NR 文件当前行的行号 number of rankNF 文件当前行的列数(有几列)number of field输出每次处理的行号,以及当前行以“:”分隔的字段个数OFS output field separator输出文件的行号分隔符FS 输入字符分隔符RS record Separator 输入记录分隔符 指定换行符原换行符仍有效ORS 输出文本的记录分隔符FNR 行号 后可跟多个文件,第二个文件行号继续的哥文佳安最后行号开始ARGC 命令行参数个数ARGV 数组
# 连续打印,使用空格连接两个变量 如aaa bbb:{print $1 $2}aaabbb# 分隔打印,使用逗号连接两个变量aaa bbb:{print $1 $2}aaa bbb
# 格式符%c 显示字符的ASCII码%d, %i 显示十进制整数%e, %E 显示科学计数法数值%f 显示为浮点数,小数%g, %G 以科学计数法或浮点形式显示数值%s 显示字符串%u 无符号整数%% 显示% 自身# 修饰符 放在 % 与字母之间- 左对齐 默认为右对齐+ 显示数值的正负号# 操作符- 算数操作符 +-*/ 用在命令{}括号内
printf "FORMAT", item1,item2, ...# printf 打印表格# %20s 输出20个字符,如果变量字符数不够则用空格补齐# %- 左对齐awk -F: 'printf "%-20s|%-15s\n" $1,$2' /etc/passwd
awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… }' file ...
$0 整一行$1
'NR==number{command}'
/pattern/
/pattern/, /pattern/NR==number1,NR==number2
