¿Cómo ordeno un archivo según letras y números?

¿Cómo ordeno un archivo según letras y números?

Un archivo con este contenido:

abc[0]
abc[100]
abc[101]
.
.
abc[127]
abc[19]
abc[1]
.  
. 
abc[9]   
xyz[0]  
xyz[100]  
xyz[101]  
.
.
xyz[127]
xyz[19]
xyz[1]
.
.
xyz[9]

Quiero conservar el orden alfabético, pero ordenarlo numéricamente según el contenido entre paréntesis.

abc[0]
abc[1]
abc[2]
.
.
abc[127]
xyz[0]
xyz[1]
xyz[2]
.
.
xyz[127]

Respuesta1

Los tipos GNU --version-sortdeberían hacer eso por usted:

sort --version-sort file

De lo contrario, utilícelo [como separador y ordene por el primer campo y luego numéricamente por el segundo:

sort -t'[' -k1,1 -k2n file

información relacionada