分割文件的腳本

今天需要把一個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 '{i=int((NR-1)/500)+1;{print $0>>"fg_"i".txt"}}' 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]http://www.cn-dos.net/forum/viewthread.php?tid=41471[/url]完全相同,我搜索批處理方法的時候找到的。自己也記錄一下,現在的記憶力越來越不好了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章