Fish Shell에서 사용자 정의 구분 기호를 사용하여 배열을 연결하는 방법은 무엇입니까?

Fish Shell에서 사용자 정의 구분 기호를 사용하여 배열을 연결하는 방법은 무엇입니까?

요소에 공백이 포함될 수 있는 배열이 있습니다.

set ASD "a" "b c" "d"

이 배열을 쉼표로 구분된 값의 단일 문자열로 변환하려면 어떻게 해야 합니까?

# what I want:
"a,b c,d"

지금까지 얻을 수 있는 가장 가까운 방법은 배열을 문자열로 변환한 다음 모든 공백을 바꾸는 것입니다. 문제는 배열 요소 자체에 공백이 포함되지 않은 경우에만 작동한다는 것입니다.

(echo $ARR | tr ' ' ',')

답변1

Fish 2.3.0부터 string내장 기능을 사용할 수 있습니다.

string join ',' $ASD

이 답변의 나머지 부분은 이전 버전의 물고기에 적용됩니다.

한 가지 옵션은 변수 연결을 사용하는 것입니다.

echo -s ,$ASD

이렇게 하면 시작 부분에 추가 쉼표가 추가됩니다. 제거하려면 다음을 사용할 수 있습니다 cut.

echo -s ,$ASD | cut -b 2-

완전성을 위해 다음을 입력하여 사용할 수도 있습니다 sed.

echo -s $ASD, | sed 's/,$//'

답변2

printfand paste대신 echoand를 사용할 수 있습니다 tr.

printf '%s\n' $ASD | paste -sd,

AFAIK에는 fish배열 요소를 연결하는 기본 제공 방법이 없습니다.

관련 정보