Единственный стандартный способ сделать это должно удалить разрешение записи из каталога. Это будет, конечно, препятствовать тому, чтобы что-либо создало файлы в этом каталоге.
Не с split
, но можно легко переименовать их впоследствии, или можно выполнить в нем awk
:
awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile
Такими задачами лучше всего управляют с оболочкой. Используйте разделение и затем запишите простой цикл для переименования файлов. Например.
for file in wrd.*
do
mv "$file" "$file.txt"
done
переименовал бы Ваш wrd.01, wrd.02, и т.д. файлы, таким образом, у них всех есть .txt расширение.
split+mv
комбинация - больше это в 6 раз быстрее, чем awk
(приблизительно 3 с по сравнению с 18), поскольку 10 миллионов строк ввели файл (75 МБ)... текст в каждой строке был своим собственным номером строки... Спасибо за повторное заявление об "очевидном" :)
– Peter.O
25.02.2012, 12:36
split + mv
в 75 раз быстрее, чем awk
: Когда существует в 100 раз больше файлов, split + mv
в 1.5 раза быстрее, чем awk
. Так, для меня, этого split + mv
победы метода, передает. Это как consice (возможно moreso) и быстрее, чем awk
.
– Peter.O
25.02.2012, 17:59
for file in wrd.*; do mv "$file" "$file.txt"; done
"Портативный" :)
– Tony
28.10.2015, 06:20
Это не было доступно тогда, но с более поздними версиями (≥ 8.16
) из gnu split
можно использовать --additional-suffix
переключатель для управления получающимся расширением. От man split
:
--additional-suffix=SUFFIX
append an additional SUFFIX to file names.
таким образом, при использовании той опции:
split -dl 10000 --additional-suffix=.txt words wrd
получающиеся части автоматически закончатся в .txt
:
wrd00.txt
wrd01.txt
.........
gnu split
, часть gnu coreutils
. Это также доступно на OSX, если Вы устанавливаете coreutils
через homebrew
но обратите внимание что по умолчанию, на OSX, gnu
утилиты имеют a g
предварительно ожидаемый к их имени (например. gstat
вместо stat
) таким образом, Вы вызываете его как gsplit
(или измените ПУТЬ согласно руководству здесь, если Вы хотите использовать его как split
по OSX split
). HTH.
– don_crissti
10.02.2015, 18:50
gsplit
заставить числовые суффиксы (-d) работать.
– Brent Faust
24.07.2015, 04:02