我想給nul分隔的xargs提供一個輸入。爲此我有這樣的:在xargs中使用-0
$ echo -n abc$'\000'def$'\000' | xargs -0 -L 1
我得到
abcdef
我不知道爲什麼沒有打印O/P爲
abc
def
我想給nul分隔的xargs提供一個輸入。爲此我有這樣的:在xargs中使用-0
$ echo -n abc$'\000'def$'\000' | xargs -0 -L 1
我得到
abcdef
我不知道爲什麼沒有打印O/P爲
abc
def
你的主要問題是,你忘了-e
:
$ echo -n abc$'\000'def$'\000' |cat -v
abcdef
無零字節a再見。但這:
$ echo -en abc'\000'def'\000' |cat -v
abc^@def^@
是更喜歡它的^@
是cat -v
如何展示一個零字節。而現在xargs
:
$ echo -en abc'\000'def'\000' | xargs -0 -L 1
abc
def
從bash提示符嘗試help echo
。
嘗試將輸入視爲單引號字符串。
echo -ne "abc\0def\0" | xargs -0 -L 1
我建議使用'printf'命令,而不是'echo'。它的行爲更加一致。 'echo'可以是一個外部命令,'/ bin/echo',它可以從一個系統變化到另一個系統,或者它是一個內置於幾個不同shell中的shell,同樣具有從一個系統到另一個系統的不同行爲。對於簡單的'echo hello world'情況來說,這很好,當你的腳本僅僅用於bash時,它可能是好的,但對於任何和你在做的事情一樣複雜的東西,我會用'printf'。在你的情況下:'printf'abc \ 0def \ 0'' –
我剛剛意識到'printf'也是一個'bash'內建以及外部命令,但差異相對較小。 –