linux - 使用 sed 命令插入一行

标签 linux sed samba

文件中的文本如下所示:

[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

我希望输出为:

[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

我正在使用这个命令:

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

它对路径所在的文件中的所有位置进行更改。

谁能帮我解决这个问题?

最佳答案

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

在结束行之前有 path = 且有任意数量的空格的行上,将结束行 $ 替换为您的替换字符串。

关于linux - 使用 sed 命令插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46302310/

相关文章:

Java文件上传到Windows共享文件夹并进行身份验证

使用 Curl 下载文件的 Bash 脚本

python - 无法通过Python访问Samba服务器上的文件

linux - 在 linux 中使用命令重命名所有文件名?

linux - bash 中的 fork 和 exec

linux - Linux服务器上的域名

linux - 需要一个 shell 脚本从命令行获取 2 个数字,但它不应接受零个或超过 2 个参数

regex - 删除重复的文件扩展名

regex - 从脚本更改 WiFi WPA2 key

samba - 如何消除 samba 共享上的 fsp 错误?