2016-04-18 7 views
1

Ändern wie ich eine CSV-Datei mit Linien,ersetzen Räume in einer Datei, ohne die innerhalb Felder

5213 , 1395429467 , A , r7.sn-a8au-hp5e.gvt1.com , 4.31.38.18 , 1460706280 , John Doe 

Ich weiß, wie Räume in der Datei zu ersetzen: :%s/ //g. Es ändert die gesamte Datei, die die Leerzeichen enthält.

Ich möchte das letzte Element $7 seine Räume zu halten, so John Doe muss weiter John Doe und keine JohnDoe sein.

Alle zusammen, die erwartete Ausgabe lautet:

5213,1395429467,A,r7.sn-a8au-hp5e.gvt1.com,4.31.38.18,1460706280,John Doe 

jemand mir helfen kann, wie dies zu erreichen?

+2

Ich verstehe es nicht. Entfernst du nur die Leerzeichen an den Kommas? – Bernhard

+1

@Bernhard mir sieht es so aus als ob das OP Leerzeichen bedeutet. Ich habe gerade bearbeitet, um das zu reflektieren. – fedorqui

+0

@Bernhard Ja, das ist richtig, Kumpel. – Arun

Antwort

4

Sie wahrscheinlich brauchen nur jeden , ersetzen (das heißt, Raum + Komma + Raum) mit einem einzigen ,:

sed 's/ , /,/g' file 

Welche Retruns:

5213,1395429467,A,r7.sn-a8au-hp5e.gvt1.com,4.31.38.18,1460706280,John Doe 
+1

Oh ja, dummes Gehirn, das immer nicht rechtzeitig funktioniert. Danke trotzdem. – Arun

Verwandte Themen