“--numeric-suffixes”不允许与“split”参数

“--numeric-suffixes”不允许与“split”参数

我正在尝试对我正在编写的 shell 脚本使用 split 命令,并且我想使用 --numeric-suffixes 标志以便从 1 开始我的文件计数。我尝试:

split -a 1 -l 2 --numeric-suffixes=1 test.txt

然而我得到的输出是

split: option `--numeric-suffixes' doesn't allow an argument

不知道如何解决这个问题,但我尝试过其他标志,例如 --additional-suffix ,但这也不起作用。另外仅供参考,如果我不包含 -- 标志,我的命令将正确运行。任何帮助将不胜感激(我是一个unix新手,所以请温柔)


split --version输出split (GNU coreutils) 5.97

split --help-d, --numeric-suffixes use numeric suffixes instead of alphabetic

答案1

在这种特殊情况 ( -l 2) 中,解决方法是在 的实际内容之前添加恰好两行(空与否,并不重要)test.txt。您可以即时执行此操作。

然后split -a 1 -l 2 --numeric-suffixes将生成从x0.第 0 个文件将包含额外的行。删除该文件。剩余的x*文件将像您使用的一样--numeric-suffixes=1

(printf '\n\n'; cat test.txt) | split -a 1 -l 2 --numeric-suffixes
rm x0

该方法可以被推广以匹配不同的-l和不同的期望--numeric-suffixes=。您需要计算之前要添加多少行split以及之后要删除哪些文件。

可以使用 生成任意数量的行yes '' | head -n "$number"。可以使用循环删除任意数量的文件for


正如评论中所述,如果您的split版本太旧,不支持,--numeric-suffixes=那么您应该考虑升级。

答案2

该拆分版本于 2006-06-24 发布

您可能会考虑更新到 >= 8.16 (2012-03-26),它确实支持 --numeric-suffixes 的参数

相关内容