Regex 搜索冒号时使用Sed前缀

Regex 搜索冒号时使用Sed前缀,regex,sed,Regex,Sed,我需要搜索冒号“:”的每个实例,然后在冒号前面的单词前面加一个字符串 例如: 此处的一些数据word:number 预期结果: 此处的一些数据在单词:数字之前 sed "s/:/prepend_&/g" 我试过: sed "s/:/s/^/prepend_/g" 这会在以下行的开头添加前缀:prepend\u此处的一些数据word:number sed "s/:/prepend_&/g" 这将在冒号前面添加prepend_uuu:此处的一些数据wordprepend_uu

我需要搜索冒号“:”的每个实例,然后在冒号前面的单词前面加一个字符串

例如:

此处的一些数据word:number

预期结果:

此处的一些数据在单词:数字之前

sed "s/:/prepend_&/g"
我试过:

 sed "s/:/s/^/prepend_/g"
这会在以下行的开头添加前缀:prepend\u此处的一些数据word:number

sed "s/:/prepend_&/g"
这将在冒号前面添加prepend_uuu:此处的一些数据wordprepend_uuuuu:number

您需要使用

sed "s/:/prepend_&/g"
sed 's/[^[:space:]]*:/prepend_&/g'
[^[:space:][]*:
模式搜索0个或多个非空白字符和它们后面的
,而
预结束&
替换模式将用自身替换匹配项(请参见
&
)并在其前面插入
预结束

见:

sed的/[^[:space:][]*:/prepend_u&/g'