代码之家  ›  专栏  ›  技术社区  ›  Leb_Broth

带ftp访问的sed命令

sed
  •  0
  • Leb_Broth  · 技术社区  · 6 年前

    我试图通过尝试使用 sed 在远程ftp位置。

    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
    

    我收到一个错误,文件夹找不到。

    这是访问远程文件夹的正确语法吗 塞德 ?或者可能包含的文件夹中有错误?

    0 回复  |  直到 6 年前
        1
  •  1
  •   tripleee    6 年前

    在常规的类unix系统上,无法通过 ftp 好像他们是本地人。您可能可以找到一个虚拟文件系统驱动程序(google for fuse)或操作系统(plan 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
    

    还要注意组合多个 塞德 一次调用中的命令。如果确实可以就地编辑远程文件,您尤其希望避免多次往返和多次重写文件的开销;但即使对于本地处理,如果可能的话,也绝对要始终避免这种情况。