Linux 如何用一个命令编辑文件?

Linux 如何用一个命令编辑文件?,linux,bash,configuration,Linux,Bash,Configuration,我有一个问题: 如何在不使用编辑器打开文件(例如php.ini)的情况下编辑文件?我只能通过SSH/SOAP使用一个命令,所以我尝试删除该文件并将其写入新文件,但这很慢,效果不好 例如,我想用一个命令将此post_max_size=8M编辑为post_max_size=32M。这可能吗?流编辑-也称为“sed”是您的朋友 sed 's/post_max_size = 8M/post_max_size = 32M/' infile > outfile sed -i 's/post_max_

我有一个问题:

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


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

流编辑-也称为“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

使用perl one liner…当然,您可以随意更改下面的一行,以对其进行自定义并使其更具选择性

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

你当然也可以使用GNU


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

非常感谢!这对于脚本来说是完美的。如果将这些作为ssh命令的一部分使用,请确保在要由远程shell解释的引号/转义/重定向/等周围添加另一层引号/转义(例如
ssh)user@computer“sed’s/post_max_size=8M/post_max_size=32M/‘infle>outfile”
)。