regex - sed 替换所有字符直到第一个空格

标签 regex bash sed

我正在尝试替换配置文件中的一些路径。为此,我尝试使用 sed。

我的文件看起来像这样:

-Djava.util.logging.config.file=/tmp/tmp/tmp/config bla.bla

我想替换 /tmp/tmp/tmp/config 并保持 bla.bla 不变。 根据http://regexpal.com/http://regexr.com?362qc我应该使用

sed -e 's/logging.config.file=[^\s]+/logging\.config\.file\=\/new/g' 文件

但是它不起作用。

最佳答案

这会将 /tmp/tmp/... 替换为 aaa:

$ sed 's/\(.*=\)[^ ]* \(.*\)/\1 aaa \2/g' <<< "-Djava.util.logging.config.file=/tmp/tmp/tmp/config bla.bla"
-Djava.util.logging.config.file= aaa bla.bla

它将 = 之前的任何内容“保存”在 \1 中。然后将所有内容提取到一个空间中。最后将字符串的其余部分“保存”在 \2 中。

通过回显 \1 + "new string"+ \2 来完成替换。

关于regex - sed 替换所有字符直到第一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402581/

相关文章:

regex - sed 匹配大括号之间的匹配

regex - Skype 笑脸 REGEXP 模式在哪里/如何获得?

Python 正则表达式仅匹配字母字符([A-Za-z] 但对于 Unicode)

linux - 查找新文件夹的索引

bash - bash脚本中的直线查询

linux - 从桌面快捷方式调用 shell 脚本时未读取 .bashrc

linux - 如何使用 sed 遍历文件并将输出保存在不同的文件中?

regex - 如何删除notepad++中两个字符之间的文本

c# - 如何从 c# (asp.net mvc) 中的文本中提取所有 url

linux - 识别单个 unix 目录中文本文件中的模式