GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ordenar con un delimitador de varios caracteres?

ENTRADA:

$ cat a.txt 
1FOO2FOO3
4FOO5FOO5
2FOO1FOO9
$ 

SALIDA:

$ cat a.txt | sort SOMEMAGIC
2FOO1FOO9
1FOO2FOO3
4FOO5FOO5
$ 

Pregunta :¿Cómo puedo ordenar, si tengo un delimitador largo de varios caracteres? ("FOO")?

En el ejemplo a.txt se ordena por segunda columna.

La pregunta es en general, números en a.txt podría ser cualquier cosa.

Respuesta aceptada:

Utilice, p. sed para reemplazar la cadena con un delimitador de un carácter, ordenar por columna y luego reemplazar el delimitador nuevamente:

sed -e s/FOO/X/g a.txt | sort -k 2,2 -t X | sed -e s/X/FOO/g 

Esto supone que hay un carácter que sabe que no aparece en la entrada. Un carácter de control sería un candidato común, pero debe elegir según su conocimiento del formato de entrada.


Linux
  1. Cómo usar los comandos 'cat' y 'tac' con ejemplos en Linux

  2. Cómo encontrar archivos grandes de Linux con los comandos find y du

  3. ¿Cómo ejecutar un comando que implique redirigir o canalizar con Sudo?

  4. Compruebe cuánto tarda en ejecutarse un script de Bash con el comando de tiempo

  5. Cómo eliminar el carácter \r con sed

Cómo usar el comando Cat de Linux (con ejemplos)

Cómo trabajar con enlaces duros y suaves en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo grep con salida de color

Cómo pasar múltiples argumentos para ejecutar con el script .sh

¿Cómo agregar un mensaje que se leerá con dmesg?