0

我有这个脚本:

#!/bin/sh
local name="url"
local line='{ "name": "url", "value": "http:\/\/www.example.com\/dir1\/page1" }'

local name2="protocol"
local line2='{ "name": "protocol", "value": "ftp" }'

sed -i "/\<$name2\>/s/.*/$line2/" /mydir/myfile
sed -i "/\<$name\>/s/.*/$line/" /mydir/myfile

我的文件包含:

{ "name": "url", "value": "http:\/\/www.example.com\/dir2\/page2" }
{ "name": "url2", "value": "http:\/\/www.example.net/page" }
{ "name": "protocol", "value": "http" }

我使用 sed 命令检测到/值字段中的符号问题。如何修复此错误?

4

2 回答 2

3

由于您的文件/到处都是,因此最好使用备用正则表达式分隔符;它由 sed 支持。

sed -i "/\<$name2\>/s|.*|$line2|" /mydir/myfile
sed -i "/\<$name\>/s|.*|$line|" /mydir/myfile
于 2013-09-20T11:03:54.527 回答
2
于 2013-09-20T10:45:29.070 回答