Questions tagged «split»

8
将文本文件拆分为固定单词数的行
相关但没有令人满意的答案:如何将大文本文件拆分为500个单词左右的块? 我试图将一个文本文件(http://mattmahoney.net/dc/text8.zip)一行都包含> 10 ^ 7个单词,然后将其拆分为N个单词的行。我当前的方法可行,但相当缓慢且难看(使用shell脚本): i=0 for word in $(sed -e 's/\s\+/\n/g' input.txt) do echo -n "${word} " > output.txt let "i=i+1" if [ "$i" -eq "1000" ] then echo > output.txt let "i=0" fi done 关于如何使它更快或更紧凑的任何提示?

7
将大目录树拆分为指定大小的块?
我有一个目录树,我想备份到光盘。不幸的是,它超过了任何一个磁盘的大小(大约60GB)。我正在寻找一个脚本,该脚本将使用硬链接或其他方式将此树拆分为适当大小的块(不更改原始树)。然后,我可以将这些大小不一的树放入备份过程中(添加PAR2冗余等)。 这不是一个花哨的脚本,但似乎已经完成了。有什么建议吗? (跨一步写是不行的,因为我想在刻录文件之前做更多的事情。)

4
从并行产生的其他三个流中创建一个输出流
我有三种格式不同的数据。对于每种数据类型,都有一个Python脚本将其转换为统一的格式。 该Python脚本运行缓慢且受CPU限制(连接到多核计算机上的单个核),因此我想运行该脚本的三个实例(每种数据类型一个),并将其输出组合到中sort。基本上,等效于: { ./handle_1.py; ./handle_2.py; ./handle_3.py } | sort -n 但是,三个脚本并行运行。 我发现了一个问题,其中使用GNU split在处理该流的脚本的n个实例之间循环一些stdout流。 在拆分手册页中: -n, --number=CHUNKS generate CHUNKS output files. See below CHUNKS may be: N split into N files based on size of input K/N output Kth of N to stdout l/N split into N files without splitting lines …

1
未压缩的文件估计错误吗?
我有一个大(〜60G)压缩文件(tar.gz)。 我曾经split将其分为四个部分,然后cat将它们重新组合在一起。 但是,现在,当我试图估计未压缩文件的大小时,结果发现它比原始文件小吗?这怎么可能? $ gzip -l myfile.tar.gz compressed uncompressed ratio uncompressed_name 60680003101 3985780736 -1422.4% myfile.tar

7
如何在不分割多行记录的情况下有效地分割大型文本文件?
我有一个大的文本文件(gz'ed时为〜50Gb)。该文件包含4*N行或N记录;即每条记录由4行组成。我想将此文件拆分为4个较小的文件,每个文件的大小约为输入文件的25%。如何在记录边界分割文件? 天真的方法是zcat file | wc -l获取行数,将其除以4,然后使用split -l <number> file。但是,这会翻遍文件两次,并且行计数非常慢(36分钟)。有没有更好的办法? 这很接近,但不是我想要的。接受的答案也会进行行计数。 编辑: 该文件包含fastq格式的测序数据。两条记录如下所示(匿名): @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF<FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF<FAFAFFFFA @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF<FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F<.FFFF.FFF7FF<.FFA<7FA.<.7FF.FFFAFF 每条记录的第一行以开头@。 编辑2: zcat file > /dev/null 需要31分钟。 EDIT3: Onlye第一行以开头@。其他任何人都不会。看这里。记录需要保持秩序。向结果文件中添加任何内容都是不正确的。

4
结合使用GNU Parallel和Split
我正在将一个巨大的文件加载到PostgreSQL数据库中。为此,我首先split在文件中使用以获得较小的文件(每个30Gb),然后使用GNU Parallel和将每个较小的文件加载到数据库中psql copy。 问题在于,拆分文件大约需要7个小时,然后每个内核才开始加载文件。我需要的是一种split在每次写完文件后告诉它将文件名打印到std输出的方法,这样我就可以通过管道将其传输到Parallel文件,并在split完成写操作时开始加载文件。像这样: split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {} 我已经阅读了split手册页,但找不到任何东西。有没有办法使用split其他工具来做到这一点?

4
仅使用bash将单个字符串拆分为字符数组
我想只使用bash 拆分'hello'成h e l l o数组,我可以用sed来做,sed 's/./& /g'但是我想知道当我不知道分隔符是什么,或者分隔符是任意的时,如何在Bash中将字符串拆分成数组单个字符。我不认为我不能${i// /}没有创造力,因为分隔符是一个未知数,我也不认为表达式接受正则表达式。我尝试将BASH_REMATCH与[[string =〜([az]。)。*]]结合使用,但是它没有按预期工作。仅使用bash来完成某种string.split()行为的正确方法是什么?原因是我试图在所有bash中编写rev实用程序: while read data; do word=($(echo $data|tr ' ' '_'|sed 's/./& /g')) new=() i=$((${#word[@]} - 1)) while [[ $i -ge 0 ]]; do new+=(${word[$i]}) (( i-- )) done echo ${new[@]}|tr -d ' '|tr '_' ' ' done 但是我使用了tr和sed,我想知道如何正确进行分割,然后将其修复为bash。纯娱乐。
9 bash  string  split 


6
将大文件拆分为多个块而无需拆分条目
我有一个很大的.msg文件,格式为UIEE格式。 $ wc -l big_db.msg 8726593 big_db.msg 本质上,文件由各种长度的条目组成,如下所示: UR|1 AA|Condon, Richard TI|Prizzi's Family CN|Collectable- Good/Good MT|FICTION PU|G.P. Putnam & Sons DP|1986 ED|First Printing. BD|Hard Cover NT|0399132104 KE|MAFIA KE|FICTION PR|44.9 XA|4 XB|1 XC|BO XD|S UR|10 AA|Gariepy, Henry TI|Portraits of Perseverance CN|Good/No Jacket MT|SOLD PU|Victor Books DP|1989 BD|Mass Market Paperback NT|1989 tpb …

1
K3b可在各种媒体之间分配音量
如何使K3b在多个媒体上拆分卷?例如,如果我给它提供了一个6 GB的文件夹(不是一个6 GB的文件),它应该自动创建多张4.4 GB的光盘,而不是我手动创建? 如果K3B无法做到,是否有任何软件可以做到?
8 iso  split  mkisofs 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.