Zshの配列から空の文字列をすべて削除します。

Zshの配列から空の文字列をすべて削除します。

Zsh配列から空の文字列をすべて削除するには?

a=('a' '' 'b' 'c')
# remove empty elements from array
echo ${(j./.)a}

出力しなければならないa/b/c

ベストアンサー1

${name:#pattern}配列の要素に作用するパラメータ拡張(モードは空にすることができます)があります。

a=('a' '' 'b' 'c')
echo ${(j./.)a:#}
# If the expansion is in double quotes, add the @ flag:
echo "${(@j./.)a:#}"

man 1 zshexpn:

${name:#pattern}パターンが名前の値と一致する場合は空の文字列に置き換え、それ以外の場合は単に名前の値を置き換えます。 name が配列の場合、一致する配列要素が削除されます。(M)一致しない要素を削除するには、このフラグを使用してください。

おすすめ記事