使用unix cut * -c *插入输出分隔符

时间:2017-12-15 15:46:42

标签: unix delimiter cut

cut的文档(cf info cut)说:

  

--output-delimiter=OUTPUT_DELIM_STRING

With `-f`, output fields are separated by OUTPUT_DELIM_STRING.
 The default with `-f` is to use the input delimiter.  When using
 `-b` or `-c` to select ranges of byte or character offsets (as
 opposed to ranges of fields), output OUTPUT_DELIM_STRING between
 non-overlapping ranges of selected bytes.

我的理解是因此:

 echo abcdefghi | cut --output-delimiter=',' -c 1-2,5-6

应该给ab,ef。但它会打印abef ...

我如何实现ab,ef?我误解了文档吗?

在作为dupe关闭之前,请注意:

1 个答案:

答案 0 :(得分:1)

在版本8.22中,行为符合预期:

$ echo abcdefghi | cut --output-delimiter=',' -c 1-2,5-6
ab,ef
$ cut --version
cut (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.

鉴于您正在使用2006年左右正式发布的5.9系列,我想我们可以得出结论,这是该系列中的一个错误。鉴于您使用RedHat,您的版本可能已经安装了后端安全修复程序,但没有像这样的剪纸错误。

解决方案是升级,或使用您指出的替代工具。