$a"\0"$b"\0"$c"\0"$d
私は$ a、$ b、$ c、$ dなどの引数を受け入れ、それを標準出力に書き込むCLIツールを探しています。 CLIでパイプラインの先頭に使用できる標準ツールはありますか?私の実装では、カスタムecho
区切り文字を受け入れないようです。
ベストアンサー1
printf
この問題は、ほとんど次のように解決できます。
printf "%s\0" "$a" "$b" "$c" ...
printf
必要に応じて対応する書式文字列を繰り返します(この場合は各パラメータに対して1回)。これにより、各パラメータの後にヌルバイトが続きます。
最後のヌルバイトを削除するには、GNUを使用してくださいhead
。
printf "%s\0" "$a" "$b" "$c" ... | head -c-1
Zshの組み込み機能print
も後処理なしでこれを行うことができます。
print -rNn "$a" "$b" "$c" ...
(-r
エスケープ処理を無効にし、-N
引数をnullバイトで区切って終了し、-n
端末の改行を無効にします。ありがとうございます。スチールドライバーヒントをください! )