Entfernen von doppelten Zeilen in Unix
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.bkup
2
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.