您可以設置一個閾值,指定您希望在特定目錄中創建多少個文件,並在達到該閾值時創建新的子目錄。
awk '
BEGIN { system("mkdir -p sub"++j) }
/<doc/ {
x = "F"++i".txt"
}
{
print > ("sub"j"/"x);
if(i%5==0) {
close("sub"j"/"x);
system("mkdir -p sub"++j)
}
}
END {
system ("rmdir sub"j)
}' file
看看下面的例子(這將創建後的5個文件已被寫入到一個新的子目錄):
$ seq 20 > file
$ ls
file
$ awk '
BEGIN { system("mkdir -p sub"++j) }
/./ {
x = "F"++i".txt"
}
{
print > ("sub"j"/"x);
if(i%5==0) {
close("sub"j"/"x);
system("mkdir -p sub"++j)
}
}
END {
system ("rmdir sub"j)
}' file
$ ls
file sub1 sub2 sub3 sub4
$ ls sub*
sub1:
F1.txt F2.txt F3.txt F4.txt F5.txt
sub2:
F10.txt F6.txt F7.txt F8.txt F9.txt
sub3:
F11.txt F12.txt F13.txt F14.txt F15.txt
sub4:
F16.txt F17.txt F18.txt F19.txt F20.txt
你可以調整awk
命令,以滿足您的需求和要求。
如何把這麼多的信息到數據庫?如果你真的確定「數十萬個文件」是最好的路線,那麼如何對數據進行一點分析,使用數據元素使子目錄名稱自行記錄。一個簡單但經常使用的案例是根據數據日期製作子目錄,因此您有類似2014/05/05的目錄。祝你好運。 – shellter