obtém string do nome do arquivo usando KSH

0

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

    
por Arun GoWdA 18.06.2018 / 14:13

1 resposta

1
BURSTING=${s%.xml}         # cut off extension
BURSTING=${BURSTING##*_}   # cut off anything before the last underscore
typeset -u BURSTING        # make uppercase
    
por 18.06.2018 / 14:38

Tags