如何使用sed删除单个数字而不是double的行

时间:2015-10-14 18:10:08

标签: sed

我有这条线。

  point2 -> point1
  point2 -> C:nw
  point1 -> point3
  point3 -> E:ne
  point1 -> D

这将删除行

sed -i '/Total number 1/d' /tmp/test.txt

但它也会删除,

Total number 1

如何将其设置为仅删除一位数?

2 个答案:

答案 0 :(得分:3)

在结尾sed -i '/Total number 1$/d' /tmp/test.txt

添加美元符号

此外,如果您要删除任何单个数字,请替换1:sed -i '/Total number [0-9]$/d' /tmp/test.txt

最后,如果数字不一定在该行的末尾,那么当找到行尾或非数字时,您也可以使模式结束:sed -i -E '/Total number [0-9]($|[^0-9])/d' /tmp/test.txt

答案 1 :(得分:1)

精确而通用的解决方案是:

sed '/\b[[:digit:]]\b/d'

\b代表word boundary

一旦确定上述命令适用于,就通过-i选项,因为它会有效地更改输入文件。