BURSTING=${s%.xml} # cut off extension
BURSTING=${BURSTING##*_} # cut off anything before the last underscore
typeset -u BURSTING # make uppercase
Eu tenho um nome de arquivo como 'XXAR_CUST_INV_pt_PT_BURST.xml'. Eu preciso apenas "BURST" como resultado.
nota: o nome do arquivo pode ter muitos "_" (sublinhados). Então, eu preciso de string do último sublinhado e antes da extensão ".xml" que "BURST"
s="XXAR_CUST_INV_pt_PT_BURST.xml"
BUSRTING='';
source <(sed -r 's/(.*)_([^_]*)[.].*/BUSRTING=""/' <<< "${s}")
# Result:
BUSRTING=$(printf '%s' "$BUSRTING" | tr '[a-z]' '[A-Z]')
echo BUSRTING=$BUSRTING"
o resultado esperado é BURST
s="XXAR_CUST_INV_pt_PT_BURST_US.xml"
BUSRTING='';
source <(sed -r 's/(.*)_([^_]*)[.].*/BUSRTING=""/' <<< "${s}")
# Result:
BUSRTING=$(printf '%s' "$BUSRTING" | tr '[a-z]' '[A-Z]')
echo BUSRTING=$BUSRTING"
o resultado esperado é US
Tags ksh