我无法使用 sed 更改两个引号之间的值

我无法使用 sed 更改两个引号之间的值

如何使用 sed 替换第一行末尾的单词?

test00 ; test01 ; 'test02 -test03="j32h"'
test04

结果应如下所示;

test00 ; test01 ; 'test02 -test03="b254"'
test04

答案1

鉴于

$ cat file
test00 ; test01 ; 'test02 -test03="j32h"'
test04

然后

$ sed 's/"[^"]*"/"b254"/' file
test00 ; test01 ; 'test02 -test03="b254"'
test04

答案2

我们可以使用双引号作为字段分隔符,并替换第二个字段的值:

awk '
    BEGIN {FS = OFS = "\""} 
    NR == 1 {$2 = "b254"} 
    {print}
' <<END
test00 ; test01 ; 'test02 -test03="j32h"'
test04
END
test00 ; test01 ; 'test02 -test03="b254"'
test04

相关内容