
ファイル内で数字を含まないすべての文字列を検索したいのですが、次の正規表現を思いつきました。
\D*/g
このオンライン ツールでは、次のように動作します。https://regex101.com/#pcreただし、次のコマンドを実行すると:
grep -c "\D*/g" nonDistortResults.txt
戻ってきています0
。
ファイルの形式は次のとおりです。
2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576
したがって、上記の例では、 が返されることが予想されます3
。
答え1
パターンを次のように調整する必要があります。
grep -c \D nonDistortResults.txt
- grepはすでに行に対して動作しているので、「greedy」フラグは必要ありません。
- ここでは引用符は必要ありません
- 星印は 0 を含む任意の数の結果になります (したがって、星印を使用するとすべての行で true が返されます)
再度 Pearl 正規表現 (PCRE) を使用する必要がある場合は、grep の -P オプションを確認してください。ただし、マニュアル ページには次のように記載されています。
-P, --perl-regexp
PATTERN を Perl 正規表現 (PCRE、下記参照) として解釈します。これは非常に実験的な機能であり、grep -P は実装されていない機能について警告する場合があります。