2017-09-19 7 views
0

Le texte dans le fichier ressemble à ceci:Insertion en ligne en utilisant la commande sed

[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 

Je veux sortie comme:

[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 

J'utilise cette commande:

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

Il apporte des modifications à partout dans le fichier où le chemin est situé.

Quelqu'un peut-il m'aider avec ceci?

Répondre

0

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

Sur les lignes qui ont path = avant la ligne de fond avec une quantité d'espaces, remplacez la ligne de fond, $ avec votre chaîne de remplacement.