Ich mag einen Punkt im Titelfeld (field2) ein csv mit einem Punkt gefolgt von einem Leerzeichen ersetzen:Verwendung sed Stillstand mit Punkt durch Leerzeichen ersetzen
csv Beispiel:
8389383, hello my.friend,839083083,3390903
Vorgesehen Ausgabe:
:8389383, hello my. friend,839083083,3390903
ich mit einem Raum dieser Zeile nur mit einem vollständigen Stopp in einer csv erfolgreich ersetzen kann
sed -r ':b s/^([^,]*,[^,]*)\./\1 /g; t b' csv
Allerdings möchte ich den Punkt mit einem Punkt, gefolgt von einem Leerzeichen ersetzen. Ich habe versucht:
sed -r ':b s/^([^,]*,[^,]*)\./\1. /g; t b' csv
Aber das hängt und produziert kein Ergebnis.
Was kann ich der Zeile hinzufügen, um dies zu ermöglichen?
EDIT- Nur hinzufügen, möglicherweise mehr als einen Punkt in Feld 2 (das Titelfeld), die ich ersetzen möchte. Ich möchte auch nicht, dass diese Regel auf andere Felder im CSV angewendet wird.
könnte auch hinzufügen Probe Eingabe/Ausgabe, die besser reflektiert Ihre Anforderung zu drucken, so dass andere leicht – Sundeep
testen :) können es doesn Ich höre nicht auf, weil ich nach dem Stopp noch nicht Hunderttausende Millionen von Milliarden von Plätzen hinzugefügt habe. Wenn es zum ersten Mal übereinstimmt, fügt es ein Leerzeichen hinzu; Der Test ist wahr, also geht es zurück und versucht es erneut, findet einen Halt, fügt ein Leerzeichen hinzu und ... es wird nach einer Weile langweilig. Wahrscheinlich möchten Sie nach dem Stopp einen nachlaufenden Kontext haben - einen nicht leeren. –