So habe ich eine Textdatei, die eine große Anzahl von Zeilen enthält. Jede Zeile ist eine lange Zeichenfolge ohne Leerzeichen. Die Zeile enthält jedoch mehrere Informationen. Das Programm weiß, wie man die wichtigen Informationen in jeder Zeile unterscheidet. Das Programm erkennt, dass die ersten 4 Ziffern/Buchstaben der Zeile mit einem bestimmten Instrument übereinstimmen. Hier ist ein kleiner Beispielteil der Textdatei.Finden Sie Zeilen, die teilweise übereinstimmen
Beispiel Textdatei
1002IPU3...
POIPIPU2...
1435IPU1...
1812IPU3...
BFTOIPD3...
1435IPD2...
Wie Sie sehen können, gibt es zwei Linien, die 1435 innerhalb dieser Textdatei enthalten, die mit einem bestimmten Instrument zusammenfällt. Diese Zeilen sind jedoch nicht identisch. Das Programm, das ich benutze, kann seine Berechnung nicht durchführen, wenn es Duplikate der gleichen Station gibt (dh es gibt zwei 1435 * Stationen). Ich muss einen Weg finden, meine Textdateien zu durchsuchen und festzustellen, ob es Duplikate der Teilstrings gibt, die die Stationen in der Datei darstellen, sodass ich einen oder beide Duplikate löschen kann. Wenn ich BASH-Skript die Anzahl der Zeilen ausgeben könnte, die die Duplikate enthalten und was die Duplikatzeilen sagen, würde das geschätzt werden. Ich denke, dass es einen einfachen Weg dafür geben könnte, aber ich konnte keine Beispiele dafür finden. Deine Hilfe wird geschätzt.
Ist 'sort -k1.1,1.4 file.txt | uniq -Dw4' Arbeit für Sie? – heemayl
Also habe ich Ihren Befehl versucht und ich habe '>> $ sort -k1.1,1.4 text.file | uniq -Dw4 \ uniq: illegale Option - D \ Verwendung: uniq [-c | -d | -u] [-i] [-f Felder] [-s Zeichen] [Eingabe [Ausgabe]] 'Habe ich etwas falsch gemacht? Ich bin nur neugierig, ob Sie auf so etwas stoßen ... – Jon
Sorry, ich bin immer noch neu in Stack Overflow und manchmal meine Kommentare seltsam aussehen. Wenn ich "\" benutze, ist das nur eine neue Zeile. – Jon