使用sed分割文件

运维过程中,会遇到文件很大的情况。那么可以使用sed进行文件分割。

name=$1
lines=`wc -l $name|awk '{print $1}'`
filename="log_"
index=0
count=1
app=5
while [ $count -lt $lines ]
do
	end=`expr $count - 1 + $app`
	sed -n "$count,${end}p" $name > ${filename}${index}.log
	count=`expr $count + $app`
	index=`expr $index + 1`
done

其中app是每个文件的行数。filename是要保存成的文件的前缀。

---------------------------------

其实,shell提供了一个分割文件的命令:split

使用如下:

使用sed分割文件_第1张图片

命令中,指定了分割之后的文件,每个文件100行, 并且文件以'd'为前缀开始命名。

另外,split命令的b选项可以直接指定分割之后的文件大小。用法如下:

其中以d开头的那些文件是分割出来的小文件。

-------------------------------------------

awk中也有一个split函数。看这里

你可能感兴趣的:(使用sed分割文件)