【问题标题】:How to edit a file with one command?如何用一个命令编辑文件?
【发布时间】:2013-02-10 00:14:36
【问题描述】:

我有一个问题:

如何在不使用编辑器打开文件的情况下编辑文件(例如 php.ini)?我只能通过 SSH/SOAP 使用一个命令,所以我尝试删除文件并将其写入新文件,但这很慢并且效果不佳。

例如,我想用一个命令将这个post_max_size = 8M 编辑为post_max_size = 32M。这可能吗?

【问题讨论】:

    标签: linux bash configuration


    【解决方案1】:

    流编辑 - 也称为“sed”是您的朋友。

    sed 's/post_max_size = 8M/post_max_size = 32M/' infile > outfile
    
    sed -i 's/post_max_size = 8M/post_max_size = 32M/' inplace_file
    

    【讨论】:

    • 非常感谢!这对脚本来说是完美的。
    • 如果使用这些作为 ssh 命令的一部分,请务必在要由远程 shell 解释的引号/转义/重定向/等周围添加另一层引号/转义(例如 @987654322 @)。
    【解决方案2】:

    你当然也可以使用 GNU ed

    但是,我认为您应该使用一些版本控制系统(例如git)。然后你可以编辑它(在你的本地 Linux 笔记本电脑上),并适当地传输它(例如,git commit + git push 在本地笔记本电脑上,git pull 在远程主机上)。

    【讨论】:

      【解决方案3】:

      使用 perl one liner...当然可以随意更改以下行以对其进行自定义并使其更具选择性。

      perl -p -i -e 's/8M/32M/g' file_name
      

      【讨论】:

        猜你喜欢
        • 2010-10-30
        • 1970-01-01
        • 2017-09-16
        • 2013-03-24
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 2018-11-06
        • 2023-04-08
        相关资源
        最近更新 更多