相当于 cut -c ... --output-delimiter=',' in Mac OSX?

equivalent of cut -c ... --output-delimeter=',' in Mac OSX?

在 Linux 环境中,cut 有一个 --output-delimiter 选项,对于我从美国人口普查数据中提取字段并输出带分隔符的文件来说非常方便。我正在处理的数据大约有 150K 行和 1K 列,人口普查数据字典为几百个字段中的每一个提供了列范围,但是这些字段没有以任何一致的方式分隔——你必须知道列位置.因此,如果我想要一些 select 字段以逗号分隔输出,这很简单:

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

但是在 Mac 上,--output-delimiter 选项不可用。我看到的解决方案是用 selected 列获得一个逗号分隔的文件是复杂的、难看的,而且比上面的 Linux 剪切方法需要更多的手动方法,你必须在其中指定确切的位置在每种情况下你都想要逗号。

任何人都可以向我指出一些可以重现 Linux 剪切功能的核心 bash 命令吗?或者,如果可以安装一些第三方软件,那也很好。

如果没有一个干净的解决方案,我可能会在本地 运行 一个 Ubuntu Docker 容器并直接使用它,但我希望找到一套可用的工具主机。

按照此处的说明安装 GNU 工具效果很好:Install GNU Tools

brew install coreutils

除非明确默认,否则任何具有重叠命令名称的 GNU 工具都可以使用 'g' 前缀访问。

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