grep 适用于一种模式,但不适用于另一种模式

grep 适用于一种模式,但不适用于另一种模式

一个纯粹的 grep 问题。

文件包含注释掉的字符串。例如:

abc
abc1
# def3
ghi5
qwe

我想获取其中包含数字的所有字符串,但如果该字符串前面带有“#”则不行。所以在这个例子中我们应该看到

abc1
ghi5

双 grep 解决了这个问题:

grep -vE "^#" file.txt | grep -E "[0-9]"

现在的问题是:有没有一种方法可以在一次 grep 中做到这一点?

答案1

如果您可以确定第一个字符是字母(您也没有检查):

grep '^[^#].*[0-9]' file.txt

相关内容