正则表达式替换模式

时间:2013-08-21 06:23:57

标签: regex sed

我在linux中使用sed。我完成了大部分工作但需要帮助: 模式的一部分是这样的:

document=SomeRanddomAlphaNumeric/10DigitNumber, user=

一些例子:

我期待找到:

ducument=LKJHuasfb89/9878476578, user=
ducument=jhdn uryhf 9adu/6767898893, user=
ducument=iujjnbmr Ohndj88isju/6767898734, user=

并将其转为:

ducument=replacetext, user=
ducument=replacetext, user=
ducument=replacetext, user=

我使用它作为sed命令:

$ sed -i 's/regex/replacetext/g' $file.txt

替换文本是常量但我需要上述命令的正则表达式。

3 个答案:

答案 0 :(得分:1)

如果前面的文字不包含任何斜杠字符(/),则可以匹配10位数字序列,如下所示:

sed 's|\(ducument=[^/]*/\)[0-9]\{10\}|\1replacetext|' infile

答案 1 :(得分:1)

这个sed应该有效:

sed -i.bak 's/^\(document=\)[^,]*/\1replacetext/' file

答案 2 :(得分:1)

这样可行,

sed  's/\(ducument=\)\([^,]\+\)/\1replacetext/g'  file