Linux 如何找到特定格式的数字并筛选出特定范围的值?
如何查找格式为Linux 如何找到特定格式的数字并筛选出特定范围的值?,linux,unix,grep,Linux,Unix,Grep,如何查找格式为0.xzy的数字,其中xzy是数字,x是8-9,并在每次匹配前(包括)将5行代码写入outputfile.txt查找格式为0.xzy(xzy是数字) 查找x为8-9的情况 grep "^0.[89][0-9][0-9]$" file 要查找格式为0.xzy(使用单词边界而不是强制整行匹配)的数字,并打印匹配前的5行-B5,并将输出重定向到outfile: $grep-B5-Ew'0\[0-9]{3}'文件>输出文件 #将x固定到8或9 $grep-B5-Ew'0\[8-9][0-
0.xzy
的数字,其中xzy是数字,x是8-9
,并在每次匹配前(包括)将5行代码写入outputfile.txt查找格式为0.xzy
(xzy
是数字)
查找x为8-9的情况
grep "^0.[89][0-9][0-9]$" file
要查找格式为0.xzy
(使用单词边界而不是强制整行匹配)的数字,并打印匹配前的5行-B5
,并将输出重定向到outfile
:
$grep-B5-Ew'0\[0-9]{3}'文件>输出文件
#将x固定到8或9
$grep-B5-Ew'0\[8-9][0-9]{2}'文件>输出文件
注意:
需要转义以表示文字句点,否则01234
将匹配。你会发现mangrep
非常有用 您需要退出
,以避免过度匹配,并且OP不会声明整行匹配。另外,-[ABC]
标志用于上下文匹配。MMmm听起来很有趣。那么grep^0\.[0-9][0-9][0-9]$
会起作用吗?现在你不会匹配01234
,哪一个更好,但是你也不会匹配x:0.923
,因为锚定^
,$
。好吧,我使用这些锚定是因为我的问题是,这是行中唯一的文本,所以它必须以0开头以0结尾[0-9]...
grep "^0.[89][0-9][0-9]$" file