此命令在 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