如何匹配任何大于 1 的数字的模式

How to match pattern with any number higher than 1

我有文本文件:

NH:i:1
NH:i:2
NH:i:3
NH:i:4
NH:i:9
NH:i:10
NH:i:11
NH:i:12
NH:i:1002

如果末尾的数字不同于 1,我想在 unix 一个班轮中排除行。可能它可以是任意位数的数字。我不想专门提取 NH:i:1 因为我也有没有我想保留的这种模式的行。谢谢你我提前

您可以使用

grep -E '(^|[^0-9])([2-9]|[1-9][0-9]+)$' file

参见 online demo:

s='NH:i:1
NH:i:2
NH:i:3
NH:i:4
NH:i:9
NH:i:10
NH:i:11
NH:i:12
NH:i:1002'
grep -E '(^|[^0-9])([2-9]|[1-9][0-9]+)$' <<< "$s"

输出:

NH:i:2
NH:i:3
NH:i:4
NH:i:9
NH:i:10
NH:i:11
NH:i:12
NH:i:1002