Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 基于内容拆分.txt文件_Bash_Sed_Awk - Fatal编程技术网

Bash 基于内容拆分.txt文件

Bash 基于内容拆分.txt文件,bash,sed,awk,Bash,Sed,Awk,我有一个巨大的*.txt文件,如下所示: ~~~~~~~~ small file content 1 <br> ~~~~~~~~ small file content 2 <br> ... ~~~~~~~~ small file content n <br> ~~~~~~~~~~小文件内容1 ~~~~~~~~~小文件内容2 ... ~~~~~~~~~小文件内容n 如何将其拆分为n个文件,最好通过bash?使用csplit $ csplit --help U

我有一个巨大的
*.txt
文件,如下所示:

~~~~~~~~ small file content 1 <br>
~~~~~~~~ small file content 2 <br>
...
~~~~~~~~ small file content n <br>
~~~~~~~~~~小文件内容1
~~~~~~~~~小文件内容2
... ~~~~~~~~~小文件内容n

如何将其拆分为n个文件,最好通过
bash

使用
csplit

$ csplit --help
Usage: csplit [OPTION]... FILE PATTERN...
Output pieces of FILE separated by PATTERN(s) to files `xx00', `xx01', ...,
and output byte counts of each piece to standard output.
使用awk:

awk 'BEGIN {c=1} NR % 10000 == 0 { c++ } { print $0 > ("splitfile_" c) }' LARGEFILE
行。它设置一个计数器,每10000行递增一次。然后将这些行写入˙splitfile"文件


HTH

如果您的大型文本文件的内容在每一行上(即每一行都包含您想要拆分的内容,那么这应该可以工作)-

一行:

awk '{print >("SMALL_BATCH_OF_FILES_" NR)}' BIG_FILE
[jaypal:~/Temp] cat BIG_FILE
~~~~~~~~ small file content 1
~~~~~~~~ small file content 2
~~~~~~~~ small file content 3
~~~~~~~~ small file content 4
~~~~~~~~ small file content n-1
~~~~~~~~ small file content n

[jaypal:~/Temp] awk '{print >("SMALL_BATCH_OF_FILES_" NR)}' BIG_FILE

[jaypal:~/Temp] ls -lrt SMALL_BATCH_OF_FILES_*
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_6
-rw-r--r--  1 jaypalsingh  staff  32 17 Dec 14:19 SMALL_BATCH_OF_FILES_5
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_4
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_3
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_2
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_1

[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_1 
~~~~~~~~ small file content 1
[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_2 
~~~~~~~~ small file content 2
[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_6
~~~~~~~~ small file content n
测试:

awk '{print >("SMALL_BATCH_OF_FILES_" NR)}' BIG_FILE
[jaypal:~/Temp] cat BIG_FILE
~~~~~~~~ small file content 1
~~~~~~~~ small file content 2
~~~~~~~~ small file content 3
~~~~~~~~ small file content 4
~~~~~~~~ small file content n-1
~~~~~~~~ small file content n

[jaypal:~/Temp] awk '{print >("SMALL_BATCH_OF_FILES_" NR)}' BIG_FILE

[jaypal:~/Temp] ls -lrt SMALL_BATCH_OF_FILES_*
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_6
-rw-r--r--  1 jaypalsingh  staff  32 17 Dec 14:19 SMALL_BATCH_OF_FILES_5
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_4
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_3
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_2
-rw-r--r--  1 jaypalsingh  staff  30 17 Dec 14:19 SMALL_BATCH_OF_FILES_1

[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_1 
~~~~~~~~ small file content 1
[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_2 
~~~~~~~~ small file content 2
[jaypal:~/Temp] cat SMALL_BATCH_OF_FILES_6
~~~~~~~~ small file content n

尽量说得更具体些。给我们举一个你所拥有和期望的例子。