我有大约20000个文件来自某个程序的输出,它们的名称遵循以下格式:
data1.txt
data2.txt
...
data99.txt
data100.txt
...
data999.txt
data1000.txt
...
data20000.txt
我想编写一个脚本,将输入参数作为数字N.然后它生成N个连接文件的块,所以如果N = 5,它将生成以下新文件:
data_new_1.txt: it would contain (concatenated) data1.txt to data5.txt (like cat data1.txt data2.txt ...> data_new_1.txt )
data_new_2.txt: it would contain (concatenated) data6.txt to data10.txt
.....
我想知道你认为最好的方法是什么,无论是bash,python还是其他像awk,perl等.
就最简单的代码而言,我的意思是最好的方法.
谢谢
最佳答案 一个班轮怎么样? 🙂
ls data[0-9]*txt|sort -nk1.5|awk 'BEGIN{rn=5;i=1}{while((getline _<$0)>0){print _ >"data_new_"i".txt"}close($0)}NR%rn==0{i++}'