Моим первым предложением были бы Максимумы, но кажется, что я устарел. Википедия перечисляет несколько:
Аксиома, Cadabra, CoCoA, DoCon, Eigenmath, FriCAS, GAP, GiNaC, Macaulay2, Mathomatic, Максимумы, OpenAxiom, PARI/GP, Уменьшает, Мудрый, ИСКЛЮЧИТЕЛЬНЫЙ, SymPy, Xcas
Это также имеет сравнение компьютерных систем алгебры.
После того как Вы сделаны, сохранив файл, Вы всегда могли split
файл в части файла или несколько файлов на основе количества строк.
split -l 1000 output_file
или еще лучше просто попробуйте
command | split -l 1000 -
Это разделит поток вывода на файлы с каждым 1 000 строк (значение по умолчанию является 1 000 строк без-l опции).
Ниже команды даст Вам дополнительную гибкость, чтобы поместить или осуществить префикс к имени файла, которое будет сгенерировано, когда вывод будет сгенерирован и splitted для хранения в файл.
command | split -l 1000 - small-
Можно использовать сценарий удара lines.bash
#!/bin/bash
a=0
while IFS='' read -r line
do
printf -v filename "%04d.txt" "$((a++/1000))"
echo "$line" >> $filename
done
и используйте его как:
cat long_file.txt | bash lines.bash
Единственная проблема, которую я заметил, с *
войти long_file.txt
(кто-то мог исправить его).
IFS
к пустой строке для предотвращения разделения слова на read
. Использовать -r
отключить выход обратной косой черты на read
. Удалить -e
избегать выхода обратной косой черты на echo
. Используйте заключение в кавычки для предотвращения разделения слова на echo
. Использовать -v
в bash
с тех пор 4.0, чтобы не запускать подпроцесс. Используйте постпостепенное увеличение, поскольку Ваш текущий код вставит первый файл только 999 строк. a=0; while IFS='' read -r line; do printf -v filename "%04d.txt" $((a++/1000)); echo "$line" >> "$filename"; done
– manatwork
06.12.2011, 16:09
printf
не имеет -v
переключатель. (bash 4.2.10
). По крайней мере, это не находится в странице справочника printf
– xralf
06.12.2011, 16:21
man printf
документы/usr/bin/printf, который никогда не мог в жизни устанавливать переменную среды. Посмотрите help printf
для printf
окружите созданную-in's документацию.
– manatwork
06.12.2011, 16:44
++/
часть все же.
– xralf
06.12.2011, 16:48
split [arguments...] [input e.g. "-" for stdin] [output_prefix]
, например:tar -c somedir | split --byes 100MB --numeric-suffixes --suffix-length=3 - somedir.tar.part-
произвел бы набор названных файлов 100 МБsomedir.tar.part-000
, 001, 002 ответа – ThorSummoner 17.08.2017, 22:47