2017-09-19 6 views
0

Der Text in der Datei wie folgt aussieht:Einfügen in Zeile sed Befehl

[homes] 
     comment = Home Directories 
     path = 
     browseable = 
     writable = yes 
     valid users = %S 
     valid users = MYDOMAIN\%S 

[printers] 
     comment = All Printers 
     path = /var/spool/samba 
     browseable = no 
     guest ok = no 
     writable = no 
     printable = yes 

I ausgegeben werden soll, wie:

[homes] 
     comment = Home Directories 
     path = /data 
     browseable = yes 
     writable = yes 
     valid users = %S 
     valid users = MYDOMAIN\%S 

[printers] 
     comment = All Printers 
     path = /var/spool/samba 
     browseable = no 
     guest ok = no 
     writable = no 
     printable = yes 

ich diesen Befehl bin mit:

sed -i "\#path# s#.*#& /data#" file 

Es Änderungen an jeder Stelle in der Datei, in der sich der Pfad befindet, werden vorgenommen.

Kann mir jemand dabei helfen?

Antwort

0

sed '/path[ ]*=[ ]*$/s#$#/data#'

auf Linien, die path = vor dem endline mit jeder Menge Leerzeichen haben, ersetzen Sie die Endlinie, $ mit dem Ersatz-String.