Ich habe eine Eingabedatei, die so aussieht (erste Spalte ist eine Ortsnummer und die zweite ist eine Anzahl, die im Laufe der Zeit zunehmen sollte) :awk Lösung zum Vergleichen der aktuellen Zeile mit der nächsten Zeile und Drucken einer der Zeilen basierend auf einer Bedingung
1 0
1 2
1 6
1 7
1 7
1 8
1 7
1 7
1 9
1 9
1 10
1 10
1 9
1 10
1 10
1 10
1 10
1 10
1 10
1 9
1 10
1 10
1 10
1 10
1 10
1 10
und ich möchte es so aussehen beheben wie folgt aus (Ersatz zählt die mit der vorherigen Zählung verringert):
1 0
1 2
1 6
1 7
1 7
1 8
1 8
1 8
1 9
1 9
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
1 10
ich awk dafür zu verwenden, habe versucht, aber bin Stolpern mit getline, da ich nicht herausfinden kann, wie man die Zeilennummer zurücksetzt (NR?), so wird es r ead jede Zeile und es ist nächste Zeile, nicht zwei Zeilen gleichzeitig. Dies ist der Code, den ich bisher habe, irgendwelche Ideen?
awk '{a=$1; b=$2; getline; c=$1; d=$2; if (a==c && b<=d) print a"\t"b; else print c"\t"d}' original.txt > fixed.txt
Dies ist auch der Ausgang ich zur Zeit bin immer:
1 0
1 6
1 7
1 7
1 9
1 10
1 9
1 10
1 10
1 9
1 10
1 10
1 10
Ok, nur um zu verdeutlichen, versuchst du * die * Zeilen zu überspringen, wo die Anzahl abnimmt? Das sind viele Zeilen, ich frage mich, ob Sie ein kürzeres Beispiel geben könnten, das genauso klar wäre? – Levon
Entschuldigung, wenn meine Erklärung nicht klar war, möchte ich die vorherige Zeile drucken, wenn die Anzahl abnimmt, also mit der gleichen Anzahl von Zeilen, aber mit einer Datei, in der die Anzahl bleibt oder erhöht, aber nie abnimmt. – suegene
Ich habe es .. überprüfen Sie die Antworten unten, ich glaube, Sie werden finden, was Sie gesucht haben. – Levon