如何匹配任何大于 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
我有文本文件:
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