GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie sortiere ich mit einem Trennzeichen, das mehrere Zeichen lang ist?

EINGABE:

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

AUSGABE:

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

Frage :Wie kann ich sortieren, wenn ich ein mehrere Zeichen langes Trennzeichen habe? („FOO“)?

Im Beispiel a.txt wird nach zweiter Spalte sortiert.

Frage ist generell, Zahlen in a.txt könnte alles sein.

Akzeptierte Antwort:

Verwenden Sie z. sed Um die Zeichenfolge durch ein Trennzeichen mit einem Zeichen zu ersetzen, sortieren Sie nach der Spalte und ersetzen Sie dann das Trennzeichen wieder:

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

Dies setzt voraus, dass es ein Zeichen gibt, von dem Sie wissen, dass es nicht in der Eingabe erscheint. Ein Steuerzeichen wäre ein üblicher Kandidat, aber Sie müssen eine Wahl treffen, die auf Ihrer Kenntnis des Eingabeformats basiert.


Linux
  1. So verwenden Sie die Befehle „cat“ und „tac“ mit Beispielen in Linux

  2. So komprimieren Sie Dateien und Verzeichnisse unter Linux (mit Beispielen)

  3. Wie definiere ich das Trennzeichen „Tabulator“ mit „Ausschneiden“ in Bash?

  4. Wie kann man eine Datei ausgeben und Zeilen ignorieren, die mit „?“ beginnen?

  5. Wie füge ich alle vier Zeichen in einer langen Zeile ein Leerzeichen ein?

So verwenden Sie den Linux-Cat-Befehl (mit Beispielen)

Wie man mit Hardlinks und Softlinks unter Linux arbeitet

Wie führe ich einen Befehl aus, der Umleitung oder Piping mit Sudo beinhaltet?

So übergeben Sie mehrere Argumente zur Ausführung mit dem .sh-Skript

Wie füge ich eine Nachricht hinzu, die mit dmesg gelesen wird?

Linux-mv-Datei mit langem Namen