答案1
这里有两个功能在起作用:printf
、 和AWK 字符串连接。生成 的值和 字符串NR "%s "
的串联;然后将其作为第一个参数。NR
%s
printf
更清晰的写法是
printf "%d%s ", NR, $0
答案2
建议更改%d
为%.f
,因为在许多 Linux 发行版中常见的 mawk-1.3.4 对非常大的文件有限制,%d/%u
只能通过以下方式规避%.f
:
% date | mawk '{ NR=9E9-7; printf("%d\f%s\n",NR,$0) }'
2147483647
Tue Jan 18 01:49:52 EST 2022
% date | mawk '{ NR=9E9-7; printf("%.f\f%s\n",NR,$0) }'
8999999993
Tue Jan 18 01:49:58 EST 2022