如何拆分太大而无法用文本编辑器打开的文本文件?

时间:2018-01-09 09:42:18

标签: split text-files text-editor

我们有一个非常大的日志文件,我们无法打开经典文本编辑器进行分析(Notepad ++,UltraEdit,vscode,...)。我可以逐行拆分日志文件 easy ,以便创建几个小的日志文件,然后我们可以使用文本编辑器显示它们吗?

3 个答案:

答案 0 :(得分:2)

我可以向您介绍Unix / Linux命令行工具,例如headtail吗?

head -1000 $file > part1.txt
head -2000 $file | tail -1000 > part2.txt
head -3000 $file | tail -1000 > part3.txt
head -4000 $file | tail -1000 > part4.txt
[...]

答案 1 :(得分:0)

好的,经过短暂的搜索后,我发现了一个名为G.D.G SoftwareGSplit易于使用的工具。这个工具是免费的,我会告诉你它是否会摇晃。

答案 2 :(得分:0)

headtail非常适合一次操作。

Linux power提供了十二种不同的解决方案来达到相同的结果。

我相信split是实现您想要完成的工作所需的命令。

或者,也可以使用split(使用最新的gnu,因为较旧的gnu没有这些选项)来自动执行此任务,前提是您的文件具有(单点)扩展名:

SplitStartIndex=0 # you can name the splitted files starting with index 0, or any other value
MAXLINES=100 # this is the split result, ie you will get 100 lines for each file and the rest for the last file
for FILE in $BASEFILES # means $BASEFILES has to be your directory, even limited to the file(s) you need to split. for ex: BASEFILES=/home/coding/mybigcodefile.c
do

    # Count the big file lines
    countlines=$(cat $FILE | wc -l)

    # split file if size > $MAXLINES=100
    if [ $countlines -gt $MAXLINES ];then

        # output_prefix = path & filename_wo_extension & PREFIX && extension
        fullfilename_wo_extension=$(echo $FILE | cut -f 1 -d '.')

        # Split the file and append the orginal extension to the output file with profix     
        split --numeric-suffixes="$SplitStartIndex" --additional-suffix=".$EXT_BASE" -l $MAXLINES $FILE $fullfilename_wo_extension

        # Backup original file, just in case ;-)
        mv $FILE "$fullfilename_wo_extension.$EXT_BCKP"

    fi

done