sed wählt zwischen zwei Mustern

sed wählt zwischen zwei Mustern
First line NC1.c   
/* comments        
second line nc1.c
  */               
*/
adsf
asfd  

Ich möchte die Zeilen zwischen den "/" und der letzte "/" und löschen Sie sie, das Ergebnis ist

First line NC1.c   
adsf
asfd  

Wie soll ich den Befehl schreiben?

Antwort1

So etwas scheint ok zu sein:

$ sed '/\/\*/,/\*\//d; /\*\//d; /\/\*/d' file4
First line NC1.c   
adsf
asfd 

Für die Bearbeitung direkt vor Ort können Sie sed -i verwenden.

Dieser Sed führt drei separate Löschungen durch:

/\/\*/,/\*\//d = Zeilenbereich zwischen Muster /* und */ (mit \ maskiert)
/\*\//d = Zeilen, die */ enthalten (maskiert)
/\/\*/d = Zeilen, die /* enthalten (maskiert)

verwandte Informationen