如何让Linux的grep输出只含数字的行?

使用grep命令找出只包含数字的行

grep支持三种re,basic re、extended re、perl re。
前两种都无法达到你的需求。用perlre可以,需要参数-P,pattern 为 '^\D*\d(?!.*\d)' ,引起来较妥,\d代表数字写,和 [0-9] 一回事,\D表示非数字,^\D*\d,表示从一行起始至找到第一个数字为止,(?!pattern) 是一个判断,表示从该位置起往后,不符合 pattern 描述时,判断结果为 “真”。(?!.*\d) 表示,从匹配到第一个数字至一行末,无法招待第二个数字。更多Linux知识可参考《Linux就该这么学》。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-21

扩展元字符

+ 前面字符1到N

? 前面字符0-1个

a|b 匹配a或b

() 组字符

(..)(..)\1\2 标签匹配

x{m}

x{m,}

x{m,n}   linux grep 搜索命令

# egrep '^[0-9]+$'    filename.txt

本回答被提问者和网友采纳
第2个回答  2021-02-02
➜ ~ grep "[[:digit:]]" gretest | grep -v "[[:alpha:]][[:digit:]]"
你看这样行不行?筛选两遍,假设gretest是被筛选的文件。先把所有含数字的文件筛选出来。然后再把结果中不仅包含数字的行筛选出去。
第3个回答  2019-11-21
《linux就该这么学》不错的linux自学书籍
相似回答