Не тот ответ, который вы просили, но если вы создадите свой собственный файл подходящего размера, вставьте его в свой процесс, а затем выполните вычисления в этом В адресном пространстве он должен иметь тот же эффект, что и файл подкачки, и у вас гарантированно будет место, в отличие от конкуренции с другими процессами за доступную оперативную память / подкачку.
Это также может быть медленнее, в зависимости от того, как часто вы перезаписываете данные, но должно быть намного более переносимым.
Con la entrada que proporcionó, pude lograr esto con el siguiente comando
while read -r dir; do mkdir -p./"$dir"; done< <(sed 's@ > @/@g' input)
Puede reemplazar ./
con la ruta del directorio en el que desea que comience el árbol de directorios, si no es el directorio actual.
Esto usa sed
para convertir sus líneas de entrada de algo como:
ALFA ROMEO > 147 > Scheinwerferblenden
a:
ALFA ROMEO/147/Scheinwerferblenden
Luego envía esta salida a un ciclo while que usa mkdir -p
para crear el árbol de directorios.
$ cat input
ALFA ROMEO > 147 > Scheinwerferblenden
ALFA ROMEO > 156 > Scheinwerferblenden
ALFA ROMEO > 156 > Kühlergrill
AUDI > 80 B3 > Heckspoiler
$ while read -r dir; do mkdir -p./"$dir"; done< <(sed 's@ > @/@g' input)
$ tree
.
├── ALFA\ ROMEO
│ ├── 147
│ │ └── Scheinwerferblenden
│ └── 156
│ ├── K\303\274hlergrill
│ └── Scheinwerferblenden
├── AUDI
│ └── 80\ B3
│ └── Heckspoiler
└── input
9 directories, 1 file
Pruebe esto, según su entrada (usandoexpansiones de parámetros bash):
while IFS=">" read -r c1 c2 c3; do
c2=${c2% }
mkdir -p "${c1% }/${c2# }/${c3# }"
done < file-or-input
$ tree AUDI ALFA\ ROMEO/
AUDI
└── 80 B3
└── Heckspoiler
ALFA ROMEO/
├── 147
│ └── Scheinwerferblenden
└── 156
├── Kühlergrill
└── Scheinwerferblenden
7 directories, 0 files