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の単語の境界と一致します。