grepはあるパターンでは動作しますが、他のパターンでは動作しません。

grepはあるパターンでは動作しますが、他のパターンでは動作しません。

純粋にgrepの質問です。

ファイルにコメントされた文字列が含まれています。たとえば、

abc
abc1
# def3
ghi5
qwe

数値を含むすべての文字列をインポートしたいが、文字列の前に "#"がある場合はインポートしません。したがって、この例では、

abc1
ghi5

Double grepで問題を修正しました。

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

今質問は:1つのgrepでこれを行う方法はありますか?

ベストアンサー1

最初の文字が文字であると確信できる場合(どちらも確認しません):

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

おすすめ記事