我在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
替换文本是常量但我需要上述命令的正则表达式。
答案 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