Я хотел бы разбить файл на байты при сохранении полных строк через

split -C <bytes> filename

Однако разделение по умолчанию не принимает -C

split: illegal option -- C
usage: split [-a sufflen] [-b byte_count] [-l line_count] [-p pattern]
             [file [prefix]]

Я brew install coreutils, который выглядит так, как должен поддерживать то, что я хочу.

Как изменить split для использования coreutils?

1
Roman 4 Сен 2017 в 13:28

4 ответа

Лучший ответ

brew install coreutils установит команды с префиксом 'g' по умолчанию. Поэтому split должен быть доступен, если вы напечатаете gsplit. Вы можете установить команды с обычными именами, установив пакеты с параметром --with-default-names.

Для получения дополнительной информации см. https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

3
PKo 4 Сен 2017 в 10:40

--with-default-names был удален из brew, поэтому, если вам нужно запустить одну команду с ее обычным именем, вам нужно что-то добавить к своему пути. См. ниже

brew info coreutils
...
==> Caveats
Commands also provided by macOS have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
   PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
0
louis_guitton 24 Июл 2019 в 09:55

Перейдите по пути к файлу и выполните следующую команду split -b 500m inputFile output_files.split.txt

Примере

Split -b 500m sample.txt output_files.split.txt

0
Prasad.Jakka 27 Май 2019 в 06:02

Нашел это!

brew info coreutils
...
==> Caveats
All commands have been installed with the prefix 'g'.

Так что просто gsplit -C $BYTES filename

0
Roman 4 Сен 2017 в 10:42