grepを使用して特定の単語の発生回数を取得する方法

grepを使用して特定の単語の発生回数を取得する方法

ファイル内の「x」で始まり、その後に少なくとも1つの「a」があり、「a」の後に最大2つの「a」が続くテキストを検索する方法です。

私は次のことを試しました

grep -i ^xa{1..2} textfile.txt

しかし、その使い方を理解していないようです。

ベストアンサー1

$ cat ip.txt 
xe
xa
xaaaalt
xaaa
xaa

$ # match 'a' 1 to 3 times
$ grep -i '^xa\{1,3\}' ip.txt
xa
xaaaalt
xaaa
xaa

$ # with ERE, no need to escape {}
$ grep -iE '^xa{1,3}' ip.txt
xa
xaaaalt
xaaa
xaa

3つ以上の連続一致を防ぐには、a次のものが必要です。

$ grep -iE '^xa{1,3}([^a]|$)' ip.txt
xa
xaaa
xaa

$ # or lookarounds with PCRE
$ grep -iP '^xa{1,3}(?!a)' ip.txt
xa
xaaa
xaa

おすすめ記事