Regex LinuxGrep-将文件中的数字从x打印到y
我只是问如何从-10和10打印,虽然我现在明白了,但我不知道如何从不同的范围打印,例如从-8到23 我第一次做的Regex LinuxGrep-将文件中的数字从x打印到y,regex,linux,unix,grep,Regex,Linux,Unix,Grep,我只是问如何从-10和10打印,虽然我现在明白了,但我不知道如何从不同的范围打印,例如从-8到23 我第一次做的 egrep '^-?[0-8]?[0]?[1-9]$' numbers.txt 从-24打印到24 egrep '^[-]?[0-8]$+\.?' numbers.txt 从-8打印到8 我怎样才能把它们结合起来,得到-8。。23?例如,你可以说: egrep '^(-?0?[0-8]|9|1[0-9]|2[0-3])$' 这将使用^(选项1 |选项2 | | |选项n)$匹配
egrep '^-?[0-8]?[0]?[1-9]$' numbers.txt
从-24打印到24
egrep '^[-]?[0-8]$+\.?' numbers.txt
从-8打印到8
我怎样才能把它们结合起来,得到-8。。23?例如,你可以说:
egrep '^(-?0?[0-8]|9|1[0-9]|2[0-3])$'
这将使用^(选项1 |选项2 | | |选项n)$
匹配以下情况:
-8到8-0?[0-8]
99
10到191[0-9]
20到232[0-3]
egrep --color '[-][1-8]|([0]|[1])[0-9]|[2][0-3]'
[-][1-8]
#-1到-8
([0]|[1])[0-9]
第0-19页
[2][0-3]
#20-23添加问题的链接。注意:请使用|
对不起,在你的另一个问题中使用原始问题,你说文件中有数字-100到100;该文件中有201行,第一行包含-100,最后一行包含100?如果是这样,有一个比使用grep更好的方法。新文件只包含-100,-24。。24100为了方便起见,每次我尝试一个命令都会让人不知所措。我现在尝试的命令是egrep“^-?[0-8]?[0]?[1-9]$”numbers.txt,结果是-24到24(不包括-100或100)。grep是用于此作业的错误工具。也许您想对行进行排序,然后运行awk
打印从-8到23的行?非常感谢您的帮助,这与我的尝试相去甚远,但我想我对这一点有了更好的理解。很高兴读到这篇文章!它解决了你的问题吗,@dain?既然你是新来的,如果你的问题已经解决了,请别忘了把答案标为“接受”。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你有什么问题!1.
部分也可以捕获1x
、1$
甚至1§
,例如,如果您想确保它只捕获数字,您必须以以下方式指定它:1[0-9]
或作为完整的表达式:“^(-0?[0-8]| 9 | 1[0-9]| 2[0-3])”
@Yaron您是对的。我有点懒,以为所有的数据都是数字。更新,谢谢!根据文件的格式,您可能需要添加一个-x
选项。如果OP的输入文件包含100
,则该文件将包含与正则表达式匹配的10
。