我正在尝试使用SED并更改文件中的一行:
ggsave()
到
"homepage": "http://localhost:123/",
使用
"homepage": "http://localhost:123/newpath",
但它不起作用,也许我忘了逃避?
编辑: 此外,文件中还有另一条近乎相似的行(不应该被修改)!
sed -i "s/^"homepage": "http:\/\/localhost:123\/"/"homepage": "http:\/\/localhost:123\/newpath"/g"
答案 0 :(得分:2)
$ cat 48308267
"homepage": "http://localhost:123/",<br>
"proxy": "http://localhost:123",
$ sed -i '/^[[:blank:]]*"homepage"/s#:123/#:123/newpath#' 48308267
# the -i option writes the changes to the file itself
$ cat 48308267
"homepage": "http://localhost:123/newpath",<br>
"proxy": "http://localhost:123",
更通用的版本是重用匹配的模式
$ cat 48308267
"homepage": "http://localhost:123/",<br>
"proxy": "http://localhost:123",
$ sed -iE '/^[[:blank:]]*"homepage"/s#(:[[:digit:]]+/)#\1newpath#' 48308267
$ cat 48308267
"homepage": "http://localhost:123/newpath",<br>
"proxy": "http://localhost:123",
注意:通用版本适用于任何端口号,而不仅仅是123
您可以利用将s
命令的分隔符从默认/
更改为几乎与模式不冲突的任何内容。
所有好: - )
答案 1 :(得分:1)
echo '"abc": "http://localhost:123/",<br>' | \
sed 's|"abc": "http://localhost:123/",<br>|"abc": "http://localhost:123/newpath",|'
sed
接受其他分隔符,例如:
,|
等;不仅/
。
答案 2 :(得分:0)
以下简单的sed
可能对您有帮助。
sed 's/",$/newpath",/g' Input_file
输出如下。
"abc": "http://localhost:123/newpath",
如果您对上面代码输出到同一个Input_file本身感到满意,那么也可以在-i
添加sed
选项。