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

问题描述 投票:0回答:1

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

我唯一可以做到这一点的选择是使用AWK。

我有一个大文件“ main.txt”,我希望它们分开并具有两位数的数字后缀:

我能做什么:

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

我想要的是:

main_01
main_02
main_03
shell unix awk split aix
1个回答
1
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.