我是 sed 的新手,我想弄清楚是否可以在一行中的字符串匹配后遇到的两个标记之间的所有单词添加前缀

假设我有一条线

abc xyz PAT1 { PAT2 PAT3 PAT4 } cdf fgd
PAT1 是字符串匹配,在这种情况下标记是 { and }
我希望结果是
abc xyz PAT1 { prefix_PAT2 _prefix_PAT3 prefix_PAT4 } cdf fgd

我可以编写一个 C 代码来做到这一点,但我是脚本的新手,所以我想知道在 sed 中是否可行?

如果遇到字符串,我知道如何为行的某些列添加前缀
PAT2 PAT3 PAT4 可以是任何列,并且可能超过 3 个

最佳答案

输入文件包含:

abc xyz PAT1 { PAT2 PAT3 PAT4 } cdf fg

试试下面的代码:
sed -i -e 's/PAT*/prefix_PAT/2g' filename

它将更新您的输入文件(文件名)
输出:
abc xyz PAT1 { prefix_PAT2 prefix_PAT3 prefix_PAT4 } cdf fgd

关于unix - 遇到特定模式后如何在demarkers之间的单词添加前缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32002864/

10-16 23:09