эквивалент сокращения - c ... --output-delimeter = ',' в Ма c OSX? - PullRequest
0 голосов
/ 10 апреля 2020

В Linux средах cut имеет опцию --output-delimiter, которая очень удобна для извлечения полей из данных переписи США и вывода файла с разделителями. Данные, с которыми я работаю, имеют размер около 150 тыс. Строк и 1 тыс. Столбцов, а словарь данных переписи предоставляет диапазоны столбцов для каждого из пары сотен полей, но поля не разделяются каким-либо непротиворечивым образом - необходимо знать положения столбцов. , Поэтому, если мне нужно несколько полей выбора с выводом через запятую, это легко:

cut -c 1-15,93-95,101-105 --output-delimiter=',' census_file.txt

Но на Ma c опция --output-delimiter недоступна. Решения, которые я видел, чтобы получить файл с разделителями-запятыми с выбранными столбцами, сложны, безобразны и, кроме того, требуют более ручного подхода, чем описанный выше подход Linux cut, где вам нужно точно указать, где вы хотите запятые в каждом случае.

Кто-нибудь может указать мне на некоторые основные bash команды, которые могут воспроизводить функциональность Linux cut? Или, если какое-то стороннее программное обеспечение доступно для установки, это тоже подойдет.

Без чистого решения я, вероятно, буду запускать контейнер Ubuntu Docker локально и просто использовать его, но я надеюсь найти набор инструментов, доступных для моей хост-машины.

1 Ответ

0 голосов
/ 10 апреля 2020

Установка инструментов GNU работает прекрасно, следуя следующим инструкциям: Установка инструментов GNU

brew install coreutils

Если не указано явное значение по умолчанию, любой инструмент GNU с перекрывающимися именами команд может быть доступен с помощью «g» приставка.

gcut -c [column list] --output-delimiter=',' census-file.txt > delimited-census-file.csv
...