V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Chigogo
V2EX  ›  问与答

如何用 Bash 查找和替换某一文本文件的字符串?

  •  
  •   Chigogo · 2015-10-31 21:23:47 +08:00 · 2079 次点击
    这是一个创建于 3306 天前的主题,其中的信息可能已经有所发展或是发生改变。
    蓝色的灯速度很快,但是要共享给 iOS 就需要吧 yaml 文件的 127.0.0.1 替换成局域网 ip 地址。

    但是手动修改后,会在下一次运行时被重新改成 127.0.0.1 。

    如果 chmod 担心无法更新服务器,所以,如何在每次运行时,同时替换 yaml 里面的 127.0.0.1 ?
    5 条回复    2015-11-01 13:37:41 +08:00
    adexbn
        1
    adexbn  
       2015-10-31 21:50:24 +08:00 via iPhone
    写个 start.sh
    第一行是启动脚本,
    第二行是 sed
    用这个脚本启动
    ETiV
        2
    ETiV  
       2015-10-31 23:36:39 +08:00 via iPhone
    iptables 映射一下呢?公网某端口映射到 127.1 的端口
    TheCure
        3
    TheCure  
       2015-11-01 00:11:36 +08:00
    sed -i "s/before/after/g" yaml.txt
    izoabr
        4
    izoabr  
       2015-11-01 01:03:07 +08:00
    不知道你原文是什么样得,是域名还是 IP ?如果是域名干脆直接 hosts 固化得了
    Chigogo
        5
    Chigogo  
    OP
       2015-11-01 13:37:41 +08:00
    @callofmx 在 Mac 下 sed 要加一个空串哦~
    sed -i "" "s/before/after/g" yaml.txt

    看我的:

    alias lantern='sed -i "" "s/127.0.0.1/192.168.1.123/g" ~/Library/Application\ Support/Lantern/lantern-2.0.10.yaml; open /Applications/Lantern.app; sleep 6; sudo networksetup -setautoproxystate 'Wi-Fi' off'
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3307 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.