zsh - 배열의 각 요소 앞에 문자열을 추가하는 방법은 무엇입니까?

zsh - 배열의 각 요소 앞에 문자열을 추가하는 방법은 무엇입니까?

zsh 배열이 있다고 가정해 보겠습니다 ARRAY=(a b c).

my_배열의 각 요소 앞에 추가하고 싶습니다 (my_a my_b my_c).

어떻게 해야 하나요?

답변1

여러 옵션:

해당 목적을 위해 설계된 연산자 를 사용하십시오 ( 's ^와 유사 ).rc^

ARRAY=(my_$^ARRAY)

또는 이 확장자를 기본 확장자로 설정합니다( rc또는 스타일 fish).

set -o rcexpandparam
ARRAY=(my_$ARRAY)

또는 ksh93 방법 1, 테마 앵커의 시작으로 ${param/pattern/replacement}with를 사용합니다.#

ARRAY=(${ARRAY/#/my_})

또는 csh 방식이지만 histsubstpattern패턴에 따라 교체할 수 있는 변형이 있습니다.

set -o histsubstpattern
ARRAY=(${ARRAY:s/#/my_})

또는 다음을 사용하십시오 printf.

printf -v ARRAY my_%s "$ARRAY[@]"

ARRAY=("${ARRAY[@]/#/my_}")1 기술적으로 ksh93(또는 결국 복사한 bash 또는 mksh)에서는 그대로 두어야 하며 $ARRAY인용 ${ARRAY[0]}되지 않은 경우 분할+glob이 적용됩니다.

관련 정보