在 Linux 环境中,cut
有一个 --output-delimiter
选项,对于我从美国人口普查数据中提取字段并输出分隔文件的目的来说,该选项非常方便。我正在处理的数据大约有 150K 行和 1K 列,人口普查数据字典为数百个字段中的每一个提供了列范围,但这些字段没有以任何一致的方式分隔——您必须知道列位置。因此,如果我想要一些带有逗号分隔输出的选择字段,这很简单:
cut -c 1-15,93-95,101-105 --output-delimiter=',' census_file.txt
但在 Mac 上,--output-delimiter 选项不可用。我见过的获取包含选定列的逗号分隔文件的解决方案非常复杂、丑陋,而且需要比上面的 Linux 剪切方法更多的手动方法,在这种方法中,您必须在每种情况下准确指定需要逗号的位置。
有人能给我指出一些可以重现 Linux cut 功能的核心 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
关于bash - 相当于 Macos 中的 cut -c ... --output-delimiter =',' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61147259/