Regex 使用正则表达式提取范围

Regex 使用正则表达式提取范围,regex,linux,awk,sed,grep,Regex,Linux,Awk,Sed,Grep,比如说 1cn1 1cn2 1cn3 1cn4 1cn5 1cn6 1cn7 1cn8 1cn9 1cn10 1cn11 1cn12 提取1cn8到1cn12之间的线路 像这样,我有数百行,想通过输入提取任何范围 $ cat test | grep '[$0-9]' 1cn1 1cn2 1cn3 1cn4 1cn5 1cn6 1cn7 1cn8 1cn9 1cn10 1cn11 1cn12 这些是节点名称,要提取节点范围内的节点名称。从1cn8到1cn12的行可以尝试以下方法: [[:aln

比如说

1cn1
1cn2
1cn3
1cn4
1cn5
1cn6
1cn7
1cn8
1cn9
1cn10
1cn11
1cn12
提取1cn8到1cn12之间的线路

像这样,我有数百行,想通过输入提取任何范围

$ cat test | grep '[$0-9]'
1cn1
1cn2
1cn3
1cn4
1cn5
1cn6
1cn7
1cn8
1cn9
1cn10
1cn11
1cn12

这些是节点名称,要提取节点范围内的节点名称。从1cn8到1cn12的行可以尝试以下方法:

[[:alnum:]]{3}([8-9]|1[0-2])
简要说明:

[[:alnum:][3}:与任何字母大小写和数字匹配,超过3次; [8-9]| 1[0-2]:与8和9[8-9]或|匹配,数字1与0、1或2、1[0-2]
你试过什么?你在哪里被卡住了?预期输出是什么Cat测试1cn1 1cn2 1cn3 1cn4 1cn5 1cn6 1cn7 1cn8 1cn9 1cn10 1cn11 1CN12请更新问题并添加您尝试过的内容。关于1cn8到1cn12之间的问题尚不清楚。您是指从1cn8到1cn12之间的线,还是指stirng?cat测试中从1cn8到1cn12之间的任何线?grep“[$0-9]”1cn2 1cn3 1cn4 1cn5 1cn6 1cn7 1cn8 1cn10 1cn11 1cn12从1cn8到1cn12之间的线 $ cat test 1cn1 1cn2 1cn3 1cn4 1cn5 1cn6 1cn7 1cn8 1cn9 1cn10 1cn11 1cn12 $ egrep '[[:alnum:]]{3}([8-9]|1[0-2])' test 1cn8 1cn9 1cn10 1cn11 1cn12