【问题标题】:sed working on one line, but not the othersed 在一条线上工作,但不在另一条线上
【发布时间】:2015-01-03 17:39:35
【问题描述】:

这里有几行脚本,除了第一行之外,一切正常。

sed -i '/    "download-dir": "/var/lib/transmission/Downloads", /c\    "download-dir": "/media/hdd_bottom_left/transmission/downloads", ' /var/lib/transmission/settings.json
sed -i '/    "download-queue-size": 5, /c\    "download-queue-size": 6, ' /var/lib/transmission/settings.json
sed -i '/    "peer-limit-global": 200, /c\    "peer-limit-global": 1200, ' /var/lib/transmission/settings.json
sed -i '/    "peer-limit-per-torrent": 50, /c\    "peer-limit-per-torrent": 180, ' /var/lib/transmission/settings.json
sed -i '/    "port-forwarding-enabled": true, /c\    "port-forwarding-enabled": false, ' /var/lib/transmission/settings.json
sed -i '/    "rpc-whitelist": "127.0.0.1", /c\    "rpc-whitelist": "127.0.0.1,10.0.1.2,10.0.1.3", ' /var/lib/transmission/settings.json
sed -i '/    "script-torrent-done-enabled": false, /c\    "script-torrent-done-enabled": true, ' /var/lib/transmission/settings.json
sed -i '/    "script-torrent-done-filename": "", /c\    "script-torrent-done-filename": "/media/hdd_bottom_left/transmission/script/post-process", ' /var/lib/transmission/settings.json
sed -i '/    "speed-limit-up": 100, /c\    "speed-limit-up": 5000, ' /var/lib/transmission/settings.json
sed -i '/    "speed-limit-up-enabled": false, /c\    "speed-limit-up-enabled": true, ' /var/lib/transmission/settings.json
sed -i '/    "upload-slots-per-torrent": 14, /c\    "upload-slots-per-torrent": 11, ' /var/lib/transmission/settings.json

这是错误:

[root@Server transmission]# sed -i '/    "download-dir": "/var/lib/transmission/Downloads", /c\    "download-dir": "/media/hdd_bottom_left/transmission/downloads", ' /var/lib/transmission/settings.json
sed: -e expression #1, char 55: expected newer version of sed
[root@Server transmission]# 

【问题讨论】:

  • 使用/以外的其他模式分隔符(通常在正则表达式或模式中具有特殊含义)或在模式中转义

标签: bash sed centos


【解决方案1】:

如果您想/需要在表达式中使用分隔符 (/),您需要转义它们:

sed -i '/    "download-dir": "\/var\/lib\/transmission\/Downloads", /c\    "download-dir": "\/media\/hdd_bottom_left\/transmission\/downloads", ' /var/lib/transmission/settings.json

【讨论】:

  • 或者你可以改变分隔符: sed -i '\# "download-dir": "/var/lib/transmission/Downloads", #c\ "download-dir": "/ media/hdd_bottom_left/transmission/downloads", ' /var/lib/transmission/settings.json
  • @A.Danischewski 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
相关资源
最近更新 更多