我怎樣才能加入所有的行?
期望的輸出:
$ echo 'one\ntwo' | tr '\n' ''
onetwo
實際輸出:
tr: empty string2
我也試過paste -sd '' -但得到
paste: no delimiters specified
還sed
$ echo 'one\ntwo' | sed 's/\n//'
one
two
uj5u.com熱心網友回復:
tr要求第二個引數至少有一個字符,因此它知道將第一個引數中的字符翻譯成什么。如果替換字串中的字符少于匹配字串中的字符,則替換的最后一個字符用于所有其余字符。但是如果替換是空的,其余的就沒有什么可重復的了。
如果要洗掉字符,請使用tr -d.
echo $'one\ntwo' | tr -d '\n'
另請注意,您必須使用$'...'讓外殼程式將\n其視為換行符。否則它是文字字串\n。
uj5u.com熱心網友回復:
您正在尋找
paste -sd '\0' -
paste解釋\0為空字串,而不是 NUL 位元組。
$ printf '%s\n' one two | paste -sd '\0' - | od -t x1 -t a
0000000 6f 6e 65 74 77 6f 0a
o n e t w o nl
0000007
uj5u.com熱心網友回復:
終于找到了
$ echo 'one\ntwo' | perl -p -e 's/\n//'
onetwo
甚至沒有尾隨換行符
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/531769.html
標籤:重击苹果系统壳终端zsh
