2017-12-19 10 views
1

sind Ich habe Daten in folgendem Formatlöschen doppelte Anführungszeichen sed verwenden, aber nur, wenn sie in Paar

"abcde" : "Blank/Not testing", 
"mnop" : "12 GB 2.5\" PPT ABC", 
"wxy" : "14 TB 5\" Ant Testing PART SSD" 

Ich mag die doppelten Anführungszeichen löschen und die Daten in folgendem Format

abcde : Blank/Not testing 
mnop : 12 GB 2.5\" PPT ABC 
wxy : 14 TB 5\" Ant Testing PART SSD 

mich Ich weiß, ich kann alles löschen "mit einfachen Sed, aber ich möchte die sed nur am Anfang der Zeile, vor und nach: und am Ende. Nicht", die in der Mitte der Zeile erscheint.

Jede Hilfe

Grüße.

Antwort

1

Awk Lösung:

awk '{ gsub(/^"|",?$/,""); sub(/" : "/," : ") }1' file 

Der Ausgang:

abcde : Blank/Not testing 
mnop : 12 GB 2.5\" PPT ABC 
wxy : 14 TB 5\" Ant Testing PART SSD 
+0

Vielen Dank .. funktionierte perfekt .. Sie sind immer ein Retter :) – user2854333

+0

@ user2854333, Gern geschehen – RomanPerekhrest

0

Sie können versuchen, diese zu sed

sed -E 's/"([^"]*)"([^"]*)"(.*)",*/\1\2\3/' infile 
1

Wenn Sie mit allen " außer entkommen diejenigen löschen möchten GNU sed:

sed -E 's/(^|[^\])"/\1/g' file 
Verwandte Themen