我们有一个非常大的日志文件,我们无法打开经典文本编辑器进行分析(Notepad ++,UltraEdit,vscode,...)。我可以逐行拆分日志文件 easy ,以便创建几个小的日志文件,然后我们可以使用文本编辑器显示它们吗?
答案 0 :(得分:2)
我可以向您介绍Unix / Linux命令行工具,例如head
和tail
吗?
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 Software的GSplit易于使用的工具。这个工具是免费的,我会告诉你它是否会摇晃。
答案 2 :(得分:0)
head
和tail
非常适合一次操作。
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