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

Teil einer Datei sortieren?

Wie kann ich die Datei vom Terminal aus nach der zweiten Spalte sortieren? Der Inhalt der Datei ist:

Nome     Note
------------
Mehdi    0
Sunday   20
Others   10
Shnou    5

Mit sort -t' ' -nk2 liefert mir nicht das richtige Ergebnis. Wie kann ich außerdem sicherstellen, dass der Inhalt der Datei sortiert bleibt?

Akzeptierte Antwort:

Ich denke, was Sie suchen, ist so etwas:

Methode Nr. 1:Head &Tail verwenden

$ (head -n 2 sample.txt; tail -n +3 sample.txt | sort -t' ' -nk2) > a.tmp && mv a.tmp sample.txt

Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20

Dies nimmt die erste Zeile der Textdatei und fügt dann alles nach den ersten 2 Zeilen hinzu, was dann sortiert wird.

Methode Nr. 2:Nur den Kopf verwenden

$ (head -n 2; sort -t' ' -nk2) < sample.txt > a.tmp && mv a.tmp sample.txt

Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20

Nimmt die Textdatei als Eingabe, zeigt nur die erste Zeile an, sortiert den Rest.

Es ist normalerweise keine gute Idee, Dateien direkt zu bearbeiten. Es ist möglich, aber besser, eine Zwischendatei zu verwenden.

Methode Nr. 3:Vorgehensweise Nr. 2 ohne Zwischendatei

Wenn Sie die Idee von @StephaneChazelas stehlen, könnten Sie Folgendes tun, indem Sie die Notation „1<>“ verwenden, um eine Datei zum Lesen und Schreiben zu öffnen, und die Verbesserungen, die er mit dem sort vorgeschlagen hat Befehl.

$ (head -n 2; sort -nk2) < sample.txt 1<> sample.txt

Nome     Note
------------
Mehdi    0
Shnou    5
Others   10
Sunday   20

Linux
  1. Finden Sie heraus, zu welchem ​​Dateisystem eine Datei oder ein Verzeichnis gehört?

  2. Sortieren:Befehl nicht gefunden

  3. Sortieren einer tabulatorgetrennten Datei

  4. Linux-Shell-Sortierdatei nach der zweiten Spalte?

  5. So sortieren Sie eine Datei an Ort und Stelle

Shell-Scripting Teil 3:Entscheidungskontrollstrukturen in Shell-Scripts

Nützliche Vim-Editor-Plugins für Softwareentwickler - Teil 3:a.vim

Unter Linux ist alles eine Datei – Teil 2

Unter Linux ist alles eine Datei – Teil 1

VIM-Editor

Von Linux-Systemadministratoren häufig verwendete Linux-Befehle – Teil 5