在文件中替换字符串的命令

3
我希望能够使用命令替换文件中的字符串,但问题是这个字符串如此复杂。
"https": false,

我想将其更改为

"https": true,

反之亦然。

有没有办法通过命令来实现这一点? 我正在开发自动脚本,所以每当用户登录时,此命令就会启动,我已经解决了除此之外的所有问题。


你能贴更多的字符串示例吗?它只包含了模式为 "https": boolean 的字符串吗? - Haifeng Zhang
1个回答

5
使用 sed:
sed -i 's/"https": false,/"https": true,/g' /path/to/file

在这里,-i标志意味着替换并保存文件,使用相同的名称。任何一个 "https": false, 的出现将被替换为 "https": true, 如果此字符串仅出现在一行的开头,请改用以下内容:
sed -i 's/^"https": false,/"https": true,/' /path/to/file

此替换操作将在指定的文件上执行,您还可以使用通配符来对多个文件执行操作,例如 /path/tp/dir/*(目录中的所有文件)或*java(所有Java文件)。


他还说反之亦然。 - bkmoney
奇怪,它可以工作。此操作将设置任何https为false(第一步将所有false设置为true,使所有内容都为true,第二个动作将true设置为false,因此任何https现在都为false)。您需要一个临时状态(进行交换),或者选择模式(带有true或false)并在子操作中更改此模式,以便每个真/假只被处理一次。 - NeronLeVelu
实际上我只用了这个命令: sed -i 's/"https": false,/"https": true,/g' .config/deluge/web.conf 没有别的。 - Harsh
如果这个答案对你有用,请不要忘记接受它。我的编辑实际上是有问题的,我早该看到了... - ShellFish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接