gpt4 book ai didi

regex - sed通配符替换

转载 作者:行者123 更新时间:2023-12-04 16:49:03 24 4
gpt4 key购买 nike

我想基于通配符进行替换。例如,仅当单词“tenure”出现在“=”符号之后时,才将所有“tenure”更改为“disposition”。基本上是一个与该=.*tenure匹配的正则表达式

我为此使用的sed命令是:

sed 's/=.*tenure/=.*disposition/g' file.txt

但是,如果我将此传递给包含以下内容的文件:
blah blah blah = change "tenure" to "disposition"

我懂了
blah blah blah =.*disposition" to "disposition"

代替:
blah blah blah = change "disposition" to "disposition"

如何进行替换,以使正则表达式中的通配符不成为目标文件的一部分?

最佳答案

您需要使用捕获组来捕获等号和“权属”之间出现的文本。

所以

sed 's/=\(.*\)tenure/=\1disposition/g'

请注意使用 \1来引用和使用您捕获的组。

所以在

echo 'blah blah blah = change "tenure" to "disposition"' | sed 's/=\(.*\)tenure/=\1disposition/g'

我们得到
blah blah blah = change "disposition" to "disposition".

参见 Regex grouping

关于regex - sed通配符替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com