使用sed将每个单词的第三个字符括起来

Sam*_*Sam 3 unix linux bash sed

我正在尝试用文本文件中的每个单词的第三个字符括起来sed.我试过操纵:

sed 's/\(\b[A-Z]\)/\(\1\)/g' filename
Run Code Online (Sandbox Code Playgroud)

这样做我需要的除外,它将第一个字符括起来,而不是第三个字符.

它给了我:"欢迎来到极客的东西"=>"(W)elcome(T)o(T)他(G)eek(S)凝灰岩"

我想要的是:"欢迎来到极客的东西"=>"我们(l)来到Th(e)Ge(e)k St(u)ff"

如何将每个单词的第三个字符括起来?

Avi*_*Raj 6

此sed命令必须将括号内的每个第三个字符放在一个单词中.

$ echo 'Welcome To The Geek Stuff' | sed 's/\b\([A-Z][a-z]\)\([a-z]\)/\1(\2)/g'
We(l)come To Th(e) Ge(e)k St(u)ff

$ echo 'Welcome To The Geek Stuff' | sed 's/\b\([a-z][a-z]\)\([a-z]\)/\1(\2)/gi'
We(l)come To Th(e) Ge(e)k St(u)ff
Run Code Online (Sandbox Code Playgroud)

i按顺序添加修饰符以进行不区分大小写的匹配.