Я хотел бы разбить файл на байты при сохранении полных строк через
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?
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/ а>
--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"
Перейдите по пути к файлу и выполните следующую команду split -b 500m inputFile output_files.split.txt
Примере
Split -b 500m sample.txt output_files.split.txt
Нашел это!
brew info coreutils
...
==> Caveats
All commands have been installed with the prefix 'g'.
Так что просто gsplit -C $BYTES filename
Новые вопросы
bash
Для вопросов о скриптах, написанных для командной оболочки Bash. Для сценариев оболочки с ошибками / синтаксическими ошибками, пожалуйста, проверьте их с помощью программы shellcheck (или на сервере веб-проверки оболочки по адресу https://shellcheck.net) перед размещением здесь. Вопросы об интерактивном использовании Bash, скорее всего, будут касаться темы Super User, а не переполнения стека.