資工問題雜筆

[資工雜筆] Bash 指令分割密碼表

雖然用了很久的 Unix-like 的系統,但其實我還不會使用很多的指令。需要用到的時候,才會去查一下,但也花了我不少的時間在 try error。這邊簡單記錄一下我今天做的事。

事情是這樣的,我在網路上找到了一個很好用的 password dictionary。因為 Mac 的容量很小,所以我都是能省則省,可以放到雲端就放到雲端。這種 password dictionary 畢竟也不是很常用,但有時候就是會用到,索性把它上傳到 github ,也可以和別人分享。

但問題來了,github 有限制單一檔案的大小必須小於 100 MB,建議小於 50MB,而這個密碼表有 700 MB,於是我只能把它拆解成不同的檔案上傳。花了一節課的時間 try 了一下,指令如下:

先取得檔案總行數

wc -l 01.txt

再來做檔案分割
for i in {0..19} ; do sed -n "$(($i*63941069/20+1)),$(($(($i+1))*63941069/20))p" 01.txt > 01-$i.txt ; done

乍看之下有一點複雜,但事實上就是長這個樣子。
for i in {0..19}
do
sed -n "$(($i * 63941069/20+1)),$(($(($i+1)) * 63941069/20))p" 01.txt > 01-$i.txt
done

密碼表總共有 63941069 行,共要分成 20 個檔案,sed A,Bp XXX.txt 的意思是取 A 到 B 行的意思。

附上 password dictionary 的 repo

https://github.com/noootown/PasswordDictionary

廣告