连接流的所有行



如何将所有行连接起来?

所需输出:

$ echo 'onentwo' | tr 'n' ''
onetwo

实际输出:

tr: empty string2

我也尝试过paste -sd '' -,但得到

paste: no delimiters specified

alsosed

$ echo 'onentwo' | sed 's/n//'
one
two

tr要求第二个参数至少有一个字符,因此它知道将第一个参数中的字符转换为什么。如果替换字符串中的字符少于匹配字符串中的字符,则将替换字符串的最后一个字符用于所有其余字符。但是如果替换的是空的,那么就没有什么可以重复的了。

如果需要删除字符,请使用tr -d

echo $'onentwo' | tr -d 'n' 

还要注意,您必须使用$'...'来让bash将n视为换行符。否则就是字面值字符串n

你要找的是

paste -sd '' -

paste解释为空字符串,而不是NUL字节。

$ printf '%sn' one two | paste -sd '' - | od -t x1 -t a
0000000  6f  6e  65  74  77  6f  0a
o   n   e   t   w   o  nl
0000007

终于找到

$ echo 'onentwo' | perl -p -e 's/n//'
onetwo                                   

连换行符都没有

相关内容

  • 没有找到相关文章