用数字查找线

时间:2019-06-11 16:48:22

标签: regex bash

这段代码为什么找不到文件中包含数字的行?

head $1 | grep '^[.]*[0-9]{1,}[.]*'

2 个答案:

答案 0 :(得分:0)

.[.]这样的字符组中使用时,表示原义的点。

此外,当您只查找带有数字的时,数字的前面还是后面都没关系。

您要

head "$1" | grep '[0-9]'

head "$1" | grep '[[:digit:]]'

您可能需要阅读:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html

答案 1 :(得分:0)

如果要在文件“ $ 1”中查找至少包含数字的所有行,则可以使用

 grep '[0-9]' "$1"

'head'仅给出文件的前10行。仅使用不带管道'|'的grep扫描整个文件。

(顺便说一句:将$ 1放在双引号中,以确保如果文件名包含一些特殊字符(如空格),则可以正确处理该文件名。)