bash - 相当于 Macos 中的 cut -c ... --output-delimiter =',' ?

标签 bash macos cut

在 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/

相关文章:

bash - 我想使用并行 ssh 在多个服务器上运行 bash 脚本,但它简单地打印 echo 语句

linux - Awk 与 Awk + ​​cut 与 bash

MAC OS X 上的 Eclipse 未检测到 LLVM 工具链

cocoa - 如何提取与模式匹配的子字符串?

macos - 如何在 Mac OS X 10.8.2 上设置 SVN?

linux - 使用 sed 和 cut 命令复制行

python - 转换后如何更新数据框的列?

linux - 如何在一个管道中对一个文件进行两次cat

linux - 如何使用 nohup 通过 ssh 在远程服务器上执行本地 bash 脚本

python - 如何在 Raspberry Pi 启动时启动网络摄像头并将其存储在闪存驱动器中