该脚本使用sed将所有“”更改为“新内容”。使用sed或其他方法,如何仅在yyy之后更改“”?
cat >sample.txt <<EOF
xxx:
""
yyy:
""
}
EOF
sed --expression='s/""/"new stuff"/' sample.txt
该脚本使用sed将所有“”更改为“新内容”。使用sed或其他方法,如何仅在yyy之后更改“”?
cat >sample.txt <<EOF
xxx:
""
yyy:
""
}
EOF
sed --expression='s/""/"new stuff"/' sample.txt
Answers:
我可能不明白你的问题。如果只想替换“ yyy”之后的值,请使用前面的答案。如果要在“ yyy”后替换ANY值,请尝试以下一种方法:
sed --expression='/yyy/,$ s/""/"new stuff"/g' sample.txt
还没测试过:D ...
从O'Reilly-Sed和Awk第2次增补第152页收集的答案
在文件中编写脚本
/yyy\:$/{
N
s/yyy\:\n\"\"/yyy\:\
\"new stuff\"/
}
像往常一样将其应用于您的数据
sed -f脚本sample.txt
该脚本说寻找yyy:。找到后,将另一行读入模式缓冲区(听起来像《星际迷航》中的转运器)。现在在连接的行上执行as /命令。因此,我们正在寻找yyy:换行符“”。如果找到,请用yyy替换:\注意反斜杠实际换行符,然后是“新内容”
祝好运