Fish
在 Fish shell 中,如何加入帶有自定義分隔符的數組?
我有一個數組,其元素可能包含空格:
set ASD "a" "b c" "d"
如何將此數組轉換為逗號分隔值的單個字元串?
# what I want: "a,b c,d"
到目前為止,我能得到的最接近的是將數組轉換為字元串,然後替換所有空格。問題是這僅在數組元素本身不包含空格時才有效
(echo $ARR | tr ' ' ',')
從 fish 2.3.0 開始,您可以使用
string
內置:string join ',' $ASD
這個答案的其餘部分適用於舊版本的魚。
一種選擇是使用變數連接:
echo -s ,$ASD
這會在開頭添加一個額外的逗號。如果要刪除它,可以使用
cut
:echo -s ,$ASD | cut -b 2-
為了完整起見,您也可以將其放在後面並使用
sed
:echo -s $ASD, | sed 's/,$//'
您可以使用
printf
andpaste
代替echo
andtr
:printf '%s\n' $ASD | paste -sd,
AFAIK,
fish
沒有用於連接數組元素的內置方法。