1

我正在尝试编写一个 sed 命令来删除后跟两位数字的特定字符串。到目前为止,我有:

sed -e 's/bizzbuzz\([0-9][0-9]\)//' file.txt

但我似乎无法正确使用语法。有什么建议么?

4

3 回答 3

3
sed -re 's/bizzbuzz[0-9]{2}//' file.txt

sed -re 's/\bbizzbuzz[0-9]{2}\b//' file.txt

如果搜索到的字符串有单词边界

sed -e 's/bizzbuzz[0-9]\{2\}//' file.txt

如果你没有GNU sed

于 2012-10-22T22:57:02.930 回答
1

您当前的方法似乎应该可以正常工作:

$ echo 'FOO bizzbuzz56 BAR' | sed -e 's/bizzbuzz\([0-9][0-9]\)//'
FOO  BAR
于 2012-10-22T22:59:23.237 回答
0

正如其他答案中所说,语法似乎很好(带有不必要的括号)。但是您可能想替换每行中的所有字符串吗?在这种情况下,您应该在“s”命令的末尾添加一个“g”:

sed -e 's/bizzbuzz\([0-9][0-9]\)//g' file.txt

于 2012-10-23T02:59:21.453 回答