我正在尝试对我正在编写的 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 的参数