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]}があります。

関連情報