哪个版本的 split 支持标志 -p?

哪个版本的 split 支持标志 -p?

此命令在 GNU Coreutils split、Cern Linux 5 (Redhat) 和 BSD (Apple Yosemite 10.10.3) 的 split 中不起作用:

split -p'\0' input.txt

其中 input.txt 是masi\0hello\0world。关于版本的一些评论如下:

  • split -p'\0' input.txt在 BSD Split 中执行此操作,但在 OSX Yosemite 10.10.3、GNU bash、版本 3.2.57(1)-release (x86_64-apple-darwin14) 中我没有得到任何输出。
  • echo 'masi\0hello' | split -p'\\0'在 CERN Linux 5 (Redhat) 的 split 5.97 GNU 2012 中执行此操作。输出split: unrecognized option --p\\0'
  • GNU Coreutils split 中没有选项 -p

我忘记了我-p在哪里成功使用了该选项split。哪个版本的split 支持旗帜-p

答案1

Mac OS X 中的选项-p将在行匹配时拆分\0。因此,您需要在\0.抱歉我没有办法给你。您使用的工具是错误的。你可能会研究一下perl。将 NUL 字符转换为CTRL- A,添加换行符,然后使用带有-p'^A'( CTRL- V CTRL- A) 的拆分。例如,您可以执行以下操作:

cat input.txt |perl -p -e 's/\0/\n^A\n/g'| split -p ^A

-^A在哪里,但我不确定这是否重要。CTRLA

相关内容