Entfernen von doppelten Zeilen in Unix

February 11

Die Unix-Shell-Umgebung ist für das Lesen und Bearbeiten von Textdateien (unter anderem) ausgelegt. Die Konfigurations-Dateien, Skripte und Quellcodes sind einfache Textdateien, die in einem beliebigen Texteditor gelesen werden können. Aus diesem Grund gibt es Befehle für Aufgaben wie das Zusammenfassen von Dateien, Entfernen von Zeilen und Spalten und suchen nach Informationen. Durch die Kombination von Shell-Befehle mit den Skriptsprachen "Awk" und "Sed", führen Sie hohe bearbeiten Aufgaben, wie das Entfernen von doppelten Zeilen aus einem oder mehreren Textdateien von der Befehlszeile aus ohne einen Text-Editor zu öffnen.

Anweisungen

Datei kann alphabetisch sortiert werden.

1 Erstellen Sie eine Sicherungskopie der Datei, die, der Sie verwenden:

cp document.txt document.txt.bkup2

Geben Sie den Befehl:

sort -u document.txt

Mit diesem Befehl wird die Datei sortieren und entfernen Sie alle doppelte Zeilen.

3 Entfernen Sie die leeren Zeilen mithilfe des Befehls:

uniq document.txt

Datei konnte nicht alphabetisch sortiert werden.

4 Stellen Sie eine Sicherungsdatei:CP document.txt document.txt.bkup

5 Geben Sie den folgenden Awk-Befehl:

awk '!($0 in a) {a[$0];print}' document.txt > unique.txt

Ihre eindeutige Einträge finden Sie in der Datei mit dem Namen unique.txt

6 Benennen Sie die Textdatei mit den einzigartigen Linien.

cp unique.txt document.txt

Damit sind die eindeutigen Einträge wieder in die ursprüngliche Datei.

Kombinieren Sie zwei Dateien und suchen Sie die doppelten Zeilen

7 Stellen Sie eine Sicherungsdatei:CP document.txt document.txt.bkup

8 Geben Sie den Befehl:

cat doc1.txt doc2.txt > combine.txt

Dieser Befehl kombiniert doc1.txt und doc2.txt in der Datei combine.txt

9 Entfernen Sie die doppelten Zeilen.Verwenden Sie die Befehle Sort und Uniq oder der oben angegebenen Awk-Befehl.