大檔案按行分離指令碼

2022-04-18 12:21:08 字數 1124 閱讀 3900

1 #!/bin/bash

2#大檔案按行數分離成若干小檔案指令碼

34 con_data='

db2 connect to db_edp

'5 con_time='

db2 "values current timestamp"

'6 con_reset='

db2 connect reset'7

#將要分離的檔名寫到此處,其它地方不要改動

8 clear_file=pdm_20160512.txt

910 echo $con_data >lianjie.txt

11 echo $con_time >>lianjie.txt

1213 echo "

新增連線資料庫命令到分離檔案中......

"14 awk '

1;nr%40==0

' $clear_file >$clear_file.bak

15 sed -i "

1i $con_data

"$clear_file.bak

16 sed -i "

2i $con_time

"$clear_file.bak

1718 echo "

開始分離檔案......

"19 split -l 42 -d -a 3 $clear_file.bak del_ && ls| grep del_ | xargs -n1 -i mv {} {}.sh

2021 echo "

新增結尾時間戳到分離後的小檔案中......"22

for file in `ls|grep del_`;do

23 echo $con_time >>$file

24 echo $con_reset >>$file

25done

2627 echo "

壓縮分離後的小檔案......

"28 tar cf $clear_file.tar del_*

2930 echo "

刪除生成的檔案......

"31 rm -f del_*lianjie.txt $clear_file.bak

3233 echo "

執行完成

"

Linux shell 按行切割大檔案

最近專案中,檔案內容有點多,想刪除一部分的資料,如檔案有1000行,想保留600行 僅用來舉例,實際需求更複雜些 該怎麼辦呢?不如把檔案切開來,想到用 split 試試 引數說明 b,bytes size 對file進行切分,每個小檔案大小為size。可以指定單位b,k,m。l,lines numb...

shell指令碼 按行讀取檔案

按行讀取檔案 bin bash echo 方法 1 while read line1 do echo line1 done 1 echo 方法 2 cat 1 while read line2 do echo line2 done echo 方法 3 for line3 in 1 do echo l...

python 按行讀大檔案的方法

這裡的大檔案指一次讀的話會使記憶體爆掉的檔案,所以我們需要一行一行地讀。乙個名為123的txt檔案,裡面分別按行存了三個數字 1 2和3。with open 123.txt as f for line in f print line.strip 輸出12 3 with open 123.txt as...