shell 仅在特定模式匹配后替换关键字[已关闭]

1cosmwyk  于 2023-02-09  发布在  Shell
关注(0)|答案(1)|浏览(148)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
如何将[PAC]块下的模式AFTERSET_ENVIRONMENT替换为AFTERSET_ENVIRONMENT_ALT而不触及其他模式?

.
.
.
[HCL]
ABC
AFTERSET_ENVIRONMENT
DEF

[PAC]
GHI
AFTERSET_ENVIRONMENT_ALT
JKL

[GLF]
MNO
AFTERSET_ENVIRONMENT
PQR
.
.
.

我尝试了不同的sed组合,但只能用行号实现。我需要另一种方法。

tzcvj98z

tzcvj98z1#

这可能对您有用(GNU sed):

sed '/^\[PAC\]$/,/^$/s/^AFTERSET_ENVIRONMENT$/&_ALT/' file

关注从[PAC]开始到空行(或文件末尾)结束的行集合,如果一行只包含AFTERSET_ENVIRONMENT,则将_ALT添加到该行。

相关问题