nifle@megamart ~/tmp
$ echo "SHG_PS_RG_10.tif
ABC_MFCL_NHG_PS_RG_af_04.tif
SHG_PS_RG_af_01.tif
CBC_MFCL_NHG_PS_RG_af_03.tif" > foo.txt
nifle@megamart ~/tmp
$ awk -F "_" '{print $NF,$0}' foo.txt | sort -n | cut -f2- -d' '
SHG_PS_RG_af_01.tif
CBC_MFCL_NHG_PS_RG_af_03.tif
ABC_MFCL_NHG_PS_RG_af_04.tif
SHG_PS_RG_10.tif
Explicação
-
-F "_"
diz ao awk que usamos '_' como separador de campos -
$NF
é awk'ish para o último campo10.tif
-
$0
é awk'ish para toda a entradaSHG_PS_RG_af_01.tif
-
, então esse
'{print $NF,$0}'
imprime10.tif SHG_PS_RG_10.tif
Quando temos
10.tif SHG_PS_RG_10.tif
, é fácil fazersort -n
e, em seguida, usamoscut -f2- -d' '
para imprimir apenas a segunda coluna.