Linuxのbashスクリプトで次のことを試しています。
envA="prdk8s--staging-a"
envB="prd-k8s--sandbox"
for envCode in $envA $envB;
do
Code=$(echo $envCode | cut -d "--" -f 1)
echo $Code
done
しかし、これは失敗します。
cut: the delimiter must be a single character
Try 'cut --help' for more information.
予想出力:
staging
sandbox
変数の値 $envA と $envB で "--" の後に次の単語を印刷する方法はありますか?
ベストアンサー1
シェル独自のパラメータ拡張を使用して、前と後のコンポーネントをトリミングできます。
for envCode in "$envA" "$envB"; do
t=${envCode#*--}
printf '%s\n' "${t%-*}"
done
staging
sandbox
削除したい場合は、##
次のものを使用できます。%%
最長代わりに最短先行と末尾の一致 - これが必要かどうか、あなたの例では明確ではありません。