正規表現を使用して単語のリストを検索します。 3文字の代わりに2文字の単語を探してください。なぜ?

正規表現を使用して単語のリストを検索します。 3文字の代わりに2文字の単語を探してください。なぜ?

正規表現に取り組んでいますが、困惑しています。これまでのプロセスは次のとおりです。

このファイルをダウンロードしました。

wget http://www.mieliestronk.com/corncob_lowercase.txt
mv corncob_lowercase.txt words.txt

3文字の単語がすべて欲しい...

grep '^...$' words.txt

これで「abe」が検索されます。

grep '^abe.$' words.txt

「abe」が見つかりませんでした。

grep '^abe$' words.txt

これは、実際にはArch Linuxに付属のライブラリで「abe」として見られます。

grep '^abe$' /usr/share/dict/cracklib-small

私はこの質問のために恥ずかしいです。

ベストアンサー1

$ file corncob_lowercase.txt 
corncob_lowercase.txt: ASCII text, with CRLF line terminators

DOS行の終わりが問題の原因である可能性があります。 CRは、少なくともある目的では文字と見なされます。

dos2unix、またはを実行する前にtr -d '\r'を実行してくださいgrep

おすすめ記事