使用带有数字后缀的 awk 将大文件拆分为较小的文件

Split a large file into smaller files using awk with numeric suffix

我正在使用 AIX,其中拆分没有“-d”标志,它将在拆分后为较小的文件添加编号后缀。

我在单行中执行此操作的唯一选择是使用 AWK。

我有一个大文件 "main.txt",我希望它们拆分并具有 2 位数字后缀:

我能做什么:

$ split -l 10 main.txt main_
main_a
main_b
main_c

我想要的是:

main_01
main_02
main_03
awk '(NR%10) == 1{close(out); out=sprintf("main_%02d",++c)} {print > out}' file

或使用您的输入文件名作为输出文件的基础:

awk '
    NR==1 { base=FILENAME; sub(/\.[^.]*$/,"",base) }
    (NR%10) == 1 { close(out); out=sprintf("%s_%02d",base,++c) }
    { print > out }
' file