我正在运行 Centos 5.3,并将其用作split
数据导入的关键部分。服务器上运行的 split 版本似乎不支持-p
(模式匹配)。
服务器上的版本是split (GNU coreutils) 5.97
,而我的 Mac 上的版本为-p
,对 -v 或 --version 均无响应。
yum list split
没有提到任何内容。我该如何登录-p
?
答案1
简而言之,您正在查看split
Linux 上的 GNU 版本,以及 Mac 上的 BSD 版本。
我的猜测是您可以下载 BSD 版本的源代码并在 Linux 主机上进行编译 - 但我从未尝试过这样的操作。此外,如果您这样做 - 升级 GNU coreutils 可能会在将来破坏它。
http://plug-and-pray.blogspot.com/2009/11/how-to-split-large-files-in-linux-and.html
答案2
我的猜测是尝试在 CentOS 上编译较新版本的 coreutils,然后将 split 复制到一个特殊目录中,可能是与您的脚本相同的目录。但请注意默认 PATH,它不应位于任何系统路径中。您可能还想将 split 重命名为其他名称,例如 newsplit。
然后需要修改脚本以使用此版本的 split (newsplit)。这可以通过多种方式完成,例如更改脚本中的 PATH 变量,或使用 split/newsplit 的完整路径。我通常在 bash shell 中执行此操作:
#!/bin/bash
_CAT="/usr/bin/echo"
_SPLIT="${PWD}/newsplit"
${_CAT} filename.txt | ${_SPLIT}