私のファイル名は「XXAR_CUST_INV_pt_PT_BURST.xml」と同じです。その結果、「バースト」が必要です。
注:ファイル名には複数の「_」(アンダースコア)を含めることができます。したがって、最後の下線の前に文字列が必要で、「BURST」という拡張子「.xml」が必要です。
s="XXAR_CUST_INV_pt_PT_BURST.xml"
BUSRTING='';
source <(sed -r 's/(.*)_([^_]*)[.].*/BUSRTING="\1"/' <<< "${s}")
# Result:
BUSRTING=$(printf '%s' "$BUSRTING" | tr '[a-z]' '[A-Z]')
echo BUSRTING=$BUSRTING"
予想される結果はBURSTです。
s="XXAR_CUST_INV_pt_PT_BURST_US.xml"
BUSRTING='';
source <(sed -r 's/(.*)_([^_]*)[.].*/BUSRTING="\1"/' <<< "${s}")
# Result:
BUSRTING=$(printf '%s' "$BUSRTING" | tr '[a-z]' '[A-Z]')
echo BUSRTING=$BUSRTING"
予想される結果はアメリカです
ベストアンサー1
BURSTING=${s%.xml} # cut off extension
BURSTING=${BURSTING##*_} # cut off anything before the last underscore
typeset -u BURSTING # make uppercase