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

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 に答える