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

Sed:Alle Vorkommen einer Zeichenfolge außer der ersten löschen?

Ich habe eine Logdatei mit Zeitstempeln drin. Gelegentlich gibt es mehrere Zeitstempel in einer Zeile. Jetzt möchte ich alle Zeitstempel aus einer Zeile entfernen, aber den ersten behalten.

Ich kann s/pattern//2 machen aber das entfernt nur das zweite Vorkommen und sed erlaubt etwas wie s/pattern//2- nicht .

Irgendwelche Vorschläge?

Akzeptierte Antwort:

Mit GNU sed :

sed 's/pattern//2g'

Die 2 gibt an, dass das zweite Muster und der Restg entfernen sollte. Das wird also das erste behalten.


Linux
  1. Alle Dateien außer in einem bestimmten Unterverzeichnis löschen mit Suchen?

  2. Alle Dateien bis zum Match anzeigen?

  3. Alte Protokolldateien außer der letzten löschen (alphanumerisch sortiert)?

  4. Wie lösche ich die ersten N Zeilen einer ASCII-Datei mit Shell-Befehlen?

  5. Verwenden Sie Suchen, um ein bestimmtes Verzeichnis zu finden und alle darin enthaltenen Dateien außer einem Verzeichnis zu löschen?

Alle Dateien in einem Ordner außer den letzten (neuesten) 20 löschen?

Erstes Zeichen einer Zeichenfolge mit Sed umbrechen?

Alle Zeilenumbrüche außer dem letzten durch Leerzeichen ersetzen?

Verschieben Sie alle Dateien bis auf eine

Löschen Sie die ersten fünf Zeichen in einer beliebigen Zeile einer Textdatei unter Linux mit sed

Löschen Sie alle Ordner innerhalb eines Ordners außer einem mit einem bestimmten Namen