使用带有数字后缀的 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
我正在使用 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