0

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

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

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

4

3 回答 3

1

如果前面的文本不包含任何斜杠字符(/),您可以像这样匹配 10 位序列:

sed 's|\(ducument=[^/]*/\)[0-9]\{10\}|\1replacetext|' infile
于 2013-08-21T06:33:24.737 回答
1

这个 sed 应该工作:

sed -i.bak 's/^\(document=\)[^,]*/\1replacetext/' file
于 2013-08-21T06:33:30.100 回答
1

这会奏效,

sed  's/\(ducument=\)\([^,]\+\)/\1replacetext/g'  file
于 2013-08-21T06:38:16.303 回答