gpt4 book ai didi

regex - 在 unix 中提取特定出现的引号之间的字符串

转载 作者:行者123 更新时间:2023-12-04 21:59:50 25 4
gpt4 key购买 nike

输入文件

..
set name "old name"; # comment "should be updated"
..

输出文件
..
set name "new name" ; #comment "should be updated"
..

当我试图用 grep -i 'name' inputfile | grep -P \".+{\"} 对引号之间的内容进行 grep 时它在第一个“和最后一个”之间的搜索内容

old name"; # comment "should be updated
使用 grep 来实现这一点的任何想法, sedawk !

最佳答案

目前还不清楚你到底想做什么。一方面,您的 grep命令包括一个花括号,而输入没有。此外,您似乎想根据输入和输出的比较进行替换。

然而,从字面上看你的问题,这是你如何做 grep引号之间的字符串。您可以使用非贪婪匹配:

grep -Po '".*?"'

例子:
$ echo 'set name "username"; # comment "should be updated"' | grep -Po '".*?"'
"username"
"should be updated"

编辑:

为了替换一个值,您可以使用 sed .你不会使用 grep .
sed 's/"[^"]*"/"new name"/'

例子:
$ echo 'set name "old name"; # comment "should be updated"' | sed 's/"[^"]*"/"new name"/'
set name "new name"; # comment "should be updated"

关于regex - 在 unix 中提取特定出现的引号之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212611/

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