No bash shell, você pode remover uma 'extensão de ponto' (padrão de trailing mais curto correspondente a um período seguido por qualquer número de caracteres) de uma variável que contém um nome de arquivo usando expansão de parâmetro se f=00004.time
, em seguida, ${f%.*}
for avaliado como 00004
.
Colocando isso em um loop sobre um shell glob,
for f in *.time; do printf '%s\n' "${f%.*}"; done
A ordem será determinada pela expansão glob ( *.time
) e será a ordem de intercalação padrão para sua localidade - que deve ser ascendente numérica para a entrada mostrada. Para enviar os resultados para um arquivo, use o redirecionamento de shell
for f in *.time; do printf '%s\n' "${f%.*}"; done > somefile
Se você realmente quiser remover os últimos 5 caracteres em vez da extensão de ponto (mais geral), você pode modificar isso para
for f in *.time; do printf '%s\n' "${f%?????}"; done > somefile