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)
一致しない要素を削除するには、このフラグを使用してください。