Si tengo un archivo que consta de datos que se ven de la siguiente manera, ¿cómo ordenaría los datos según los números en la tercera columna?
Los espacios entre las dos primeras columnas no están delimitados por tabuladores, sino por una cierta cantidad de espacios. El espacio entre la segunda y la tercera columna varía según el tamaño del número.
También tenga en cuenta que hay espacios dentro de algunos datos de la segunda columna (como lp25( plasmid entre ( y p ) mientras que otros no tienen espacios (como chromosome ).
HELIX lp25(plasmid 24437 bp RNA linear 29-AUG-2011 HELIX cp9(plasmid 9586 bp DNA helix 29-AUG-2011 HELIX lp28-1(plasmid 25455 bp DNA linear 29-AUG-2011 HELIX chromosome 911724 bp DNA plasmid 29-AUG-2011Aquí tienes:
sort -n -k 3 test.txtDel tipo de hombre :
-n, --numeric-sort compare according to string numerical value -k, --key=KEYDEF sort via a key; KEYDEF gives location and typeKEYDEF es F[.C][OPTS][,F[.C][OPTS]] para la posición de inicio y parada, donde F es un número de campo y C una posición de carácter en el campo; ambos son el origen 1 y la posición de parada por defecto es el final de la línea. Si ni -t ni -b están en vigor, los caracteres de un campo se cuentan desde el principio del espacio en blanco anterior. OPTS es una o más opciones de pedido de una sola letra [bdfgiMhnRrV], que anulan las opciones de pedido globales para esa clave. Si no se proporciona ninguna clave, use la línea completa como clave.
y también interesante:
-t, --field-separator=SEP usar SEP en lugar de transición de no en blanco a en blanco
lo que nos dice que los campos F están separados por espacios en blanco.