我是 sed
的新手,我想弄清楚是否可以为一行中字符串匹配后遇到的两个标记之间的所有单词添加前缀
假设我有一条线
abc xyz PAT1 { PAT2 PAT3 PAT4 } cdf fgd
PAT1
是字符串匹配,在这种情况下标记是 { 和 }
我想要的结果是
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 - 遇到特定模式后如何为分界符之间的单词添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32002864/