【问题标题】:Command to replace string in a file替换文件中的字符串的命令
【发布时间】:2015-08-07 05:14:58
【问题描述】:

我想使用命令替换文件中的字符串,但问题是字符串是这样的

"https": false,

我想改成

“https”:是的,

反之亦然。

有没有办法通过命令来完成这个? 我正在开发自动脚本,所以每当用户登录时,这个命令就会启动,除此之外,我已经对所有内容进行了排序。

【问题讨论】:

  • 你能粘贴更多的字符串样本吗? patten"https": boolean中是否只包含String?

标签: string replace sed grep command


【解决方案1】:

使用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 文件)。

【讨论】:

  • 他也说反之亦然
  • 奇怪的是它的工作原理。此操作会将任何 https 设置为 false(第一个将所有 fasle 设置为 true,因此所有操作都为 true,第二个操作将 true 设置为 false,因此任何 https 现在都将为 false。您需要一个临时状态(交换)或,选择模式(使用 true或 false) 并在子操作中更改它,因此每个 true/false 只处理一次。
  • 其实我只使用了 sed -i 's/"https": false,/"https": true,/g' .config/deluge/web.conf 没有别的。
  • 如果它对你有用,不要忘记接受答案,我的编辑实际上是错误的,应该早点看到......
猜你喜欢
  • 2017-03-06
  • 2017-04-01
  • 2021-06-19
  • 2023-04-11
  • 2010-11-17
  • 2015-11-25
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
相关资源
最近更新 更多