他の数字を切り捨てずに実際の数字を抽出します。

他の数字を切り捨てずに実際の数字を抽出します。

7桁と5桁を抽出するログファイルがあります。 grep -ao '[0-9][ ]\{7\}' /var/log/Bridge.log.1 | sort | uniq -c これはうまくいき、私の7桁の数字を抽出します。これを使用すると、5桁と7桁が混在します。

grep -ao '[0-9][ ]\{5\}' /var/log/Bridge.log.1 | sort | uniq -c

問題は、5桁のクエリの末尾にスペースを追加する方法です。

ベストアンサー1

[0-9][ ]\{7\}数字の後に7つのスペースが続くものと一致します(GNUを使用grep)。

おそらくあなたが望むものは次のとおりです。

grep -o -w -E '[0-9]{7}'

これにより、-w完全な「単語」のみを取得できます。つまり、単語ではなく部分文字列と一致します。-E拡張正規表現を有効にします(必須{7}\{7\}デフォルトの正規表現で使用することは、引き続き使用することも無効にすることもできるGNUのみの拡張です)。

-w同等のものを使用してください

grep -o -E '\<[0-9]{7}\>'

where\<とは\>、探している「単語」の周りの幅が0の単語の境界と一致します。

おすすめ記事