我想在许多块中均匀分割文件。这是我的代码:用分隔符awk将文件分解为多个文件awk
awk '/*/ { delim++ } { file = sprintf("splits/audio%s.txt", int(delim /2)); print >> file; }' < input_file
我的文件看起来是这样的:
"*/audio1.lab"
0 6200000 a
6200000 7600000 b
7600000 8200000 c
.
"*/audio2.lab"
0 6300000 a
6300000 8300000 w
8300000 8600000 e
8600000 10600000 d
.
这是给我一个错误:AWK:第1行:语法错误或接近* 我不知道有足够的了解awk理解这个错误。我试图逃避角色,但仍然无法弄清楚。我可以在python中编写脚本,但我想了解如何在awk中执行此操作。任何人都知道我做错了什么?
编辑:我有14021个文件。我以前两个为例。
目前尚不清楚你到底想要做什么。你想分裂文件或合并文件或其他东西?那个魔杖是输入一个文件还是两个单独的文件?澄清'我试图在多个块中均匀分割文件'。意思是在给定样本输入的情况下发布期望的输出。 –
按标题拆分文件。方便的标题是“*” – badner
唯一的行所以你有1个文件看起来像你的发布的输入,你想分裂成多个文件,每块一个?或者你是否试图从输入文件中获取2个块到每个输出文件(因此除以2)或其他东西?这与你有14021个文件有什么关系?你想为所有输入文件中的每个块输入独特的输出文件还是某种合并或什么?再次,更好的描述和张贴预期的输出将是一个很大的帮助。 –