使用sed使用字符串为文件中的所有数字加前缀

时间:2016-12-20 16:07:52

标签: bash awk sed

使用sed,awk或者其他东西我想在文件中用字符串作为前缀,例如。

输入:

sometext(0, 456)
sometext(01, 10)

输出:

sometext(somestring0, somestring456)
sometext(somestring01, somestring10)

我尝试使用sed,但我的技能有限,所以我没有设法产生任何有意义的输出。

使用OSX10.11所以我知道sed在BSD中的行为与其他* nix的行为略有不同。

如果能更好地解决这个问题,我手边还有perl和python,但是sed和awk是首选。

1 个答案:

答案 0 :(得分:4)

您可以使用此sed命令匹配并捕获数字并替换前缀:

sed -E 's/[[:digit:]]+/somestring&/g' file

sometext(somestring0, somestring456)
sometext(somestring01, somestring10)

请注意,somestring不应包含&, \1, \2, \3等特殊替换构造。