我正在尝试通过在远程FTP位置上使用sed
来替换多个关键字。
sed -i -e 's/Squit/Use/g' ftp://server247.web-hosting.com/squit.io/index.html && sed -i -e 's/squit/ooze/g' ftp://server247.web-hosting.com/squit.io/index.html
我收到找不到该文件夹的错误。
使用sed
访问远程文件夹的语法是否正确?或包含的文件夹中可能有错误?
答案 0 :(得分:1)
在类似于Unix的常规系统上,无法像通过本地文件一样通过ftp
访问远程文件。您也许可以找到支持此功能的虚拟文件系统驱动程序(适用于FUSE的Google)或操作系统(计划9,Inferno?);但这成为您选择的平台的问题,而不是sed
或U * x。
标准解决方案是下载文件,在本地进行修改,然后将其上传回原始位置。
curl 'ftp://server247.web-hosting.com/squit.io/index.html' |
sed -e 's/Squit/Use/g' -e 's/squit/ooze/g' >/tmp/squit.io.index.html
# Then upload it back somehow
还请注意在单个调用中组合多个sed
命令的语法。如果确实有可能就地编辑远程文件,则您特别希望避免多次往返的开销并多次重写文件;但即使是本地处理,也绝对要避免。