Você precisa passar por outra configuração de operação cut
.
como delimitador:
$ echo 'MYFILES_DATA_SOMETHING_20150428.xml' | cut -d_ -f4 | cut -d. -f1
20150428
Isso pode ser feito usando muitas ferramentas:
Usando bash
ou qualquer shell POSIX:
$ var='MYFILES_DATA_SOMETHING_20150428.xml'
$ var="${var##*_}"
$ echo "${var%.*}"
20150428
Usando o GNU grep
:
$ echo 'MYFILES_DATA_SOMETHING_20150428.xml' | grep -o '[0-9]\+'
20150428
Usando o GNU sed
:
$ echo 'MYFILES_DATA_SOMETHING_20150428.xml' | sed 's/^.*_\([0-9]\+\).*$//'
20150428
Você também pode usar expr
(graças a Stéphane Chazelas):
$ var='MYFILES_DATA_SOMETHING_20150428.xml'
$ expr "x$var" : '.*_\([^.]*\)'
20150428
Usando python
:
$ python2 -c 'print "MYFILES_DATA_SOMETHING_20150428.xml".split("_")[-1].split(".")[0]'
20150428