分割檔案的指令碼

2021-08-25 03:01:02 字數 1083 閱讀 8916

今天需要把乙個2百萬的號碼檔案按行分割成500/個的小檔案,當然用linux來做很方便:

首選split:

# split  --version

split (coreutils) 5.2.1

written by torbjorn granlund and richard m. stallman.

我的版本支援按行分割:

split -l 500  m.txt -d fg

-d引數指定了分割後的檔案用數字來命名,並用fg作為字首,如果不用-d引數,則會生成xaa,xab這樣的字母名。如果不指定字首,則會用x作為預設字首。

其次用awk,這個是我比較熟悉的方法:

gawk '}' m.txt

當然windows下還可以用批處理來實現:

忽略空行

@echo off & setlocal enabledelayedexpansion

set m=1

for /f "delims=" %%a in (a.txt) do (

if !n! geq 100 set n=0 & set/a m+=1

echo %%a>>a_!m!.txt

set/a n+=1

)

保留空行

@echo off & setlocal enabledelayedexpansion

set m=1

for /f "delims=" %%a in ('findstr /n .* a.txt') do (

if !n! geq 100 set n=0 & set/a m+=1

for /f "tokens=1* delims=:" %%i in ("%%a") do echo.%%j>>a_!m!.txt

set/a n+=1

)

本文和[url]完全相同,我搜尋批處理方法的時候找到的。自己也記錄一下,現在的記憶力越來越不好了。

shell指令碼分割檔案成相同行數的檔案

使用shell指令碼將testfile.txt檔案 共7800行 分割成13個檔案,每個檔案600行,檔名的字首是splitfile root mx1 home sysadmin zhaoyj cat testfile.txt wc l 7800 指令碼如下 root mx1 home sysadm...

利用shell指令碼對大檔案進行分割

有系統運維的過程中,日誌檔案往往非常大,這樣就要求對日誌檔案進行分割,在此特用shell指令碼對檔案進行分割 方法一 其中httperr8007.log為你想分割的大檔案,file file.log 為分割後的檔案,最後為file 1.log,file 2.log,file 3.log 分割完後的每...

shell指令碼利用sed命令分割檔案

前幾天有個需求,網路模組5秒定時傳回領區資訊並寫入檔案,需求為5分鐘後讀取檔案,提取每次傳回的領區資訊中的earfcn和rsrp等,每次傳回的資訊以 為分隔符 檔案格式如下 領區資訊.領區資訊.領區資訊.領區資訊.領區資訊.提取資訊前要先把每5秒傳回的資訊分割,然後再提取,所以就寫了一下的指令碼來提...