我正在尝试使用其https版本替换许多html页面上存在的特定链接。我试过了:
grep -rl "http://server.iad.liveperson.net/hc/88956865/" ./ | xargs sed -i "s/http:\/\/server.iad.liveperson.net\/hc\/88956865\//https:\/\/server.iad.liveperson.net\/hc\/88956865\//g"
当我这样做时,即使是sudo
,我也会
sed: couldn't open temporary file ./customers/sedTR3AMu: Permission denied
customers
只是./
中的第一个目录。所以,它挂在我认为的第一个文件上,但不确定除此之外还有什么问题。
感谢任何帮助!
答案 0 :(得分:2)
您应该尝试的第一件事是独立运行sed
命令,以获取您之前知道包含该字符串的文件。我觉得sed
命令可能会抱怨/
个字符......
您应该尝试将sed
命令更改为:
sed -i 's;http://server.iad.liveperson.net/hc/88956865/;https://server.iad.liveperson.net/hc/88956865/;g'
也就是说,使用;
代替/
作为分隔符,因此您不必每次都使用/
转义\
。
答案 1 :(得分:1)
必须运行以root身份登录的命令,因为sed -i在/ tmp中创建临时文件并需要写访问权限。
谢谢:使用jim的语法和分号很好用。 ooga,我没有必要逃避字面时期。