使用shell split切分文件

使用shell split切分文件,第1张

简单明了,直接上命令

-l:按行分隔,每1000行切割test.txt文件

-d:添加数字后缀

-a:以3位数数字做尾数

test_:分割后的文件的前缀

在基础版的结果上,先执行ls命令,查找test_split_开头的文件,然后逐个重命名为.txt

五行关键字应该分割为6个文件啊?要不就是只取关键字行以下的行。

思路:用sed得出包含这个关键字的行的行号,然后根据行号分割文件。

#!/bin/sh

myFile=TestResult.txt

num=5

count=0

line=`sed -n '/FILE_TESTCASERESULT/=' $myFile`

for n in $line

do

   [ $count -eq 0 ] && let startLine=n+1 && continue

   let count+=1

   let endLine=n-1

   [ $count -eq $num ] && endLine=`sed -n '$=' myFile`

   sed -n "${startLine},${endLine} pq" $myFile >result_${count}.txt

   let startLine=n+1

done

结果保存到result_1.txt,result_2.txt,result_3.txt,result_4.txt,result_5.txt五个文件中。

注:关键字行本身不保存。如果要保存关键字行,请修改代码中的 let startLine=n+1 为 startLine=$n (两处地方)。

#!/bin/awk

{

if(/[ ]*create table/){

name=$0

sub("[ ]*create table ","",name)

}

print>name

}

就是判断当前行是不是create table 如果是,就设置name变量为table 名。

随后把当前行输出到name文件。

因此每次遇到create table 就会变换name 文件名。不需要判断结尾的行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11716732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存