grep コマンドで拡張子を検出するメモ
# testfile.txt の「.txt」が含まれている行を表示 # '…' 正規表現を使用 # '…' の中で「\m」 メタ文字「m」の本来の文字にマッチ grep '\.txt' testfile.txt
ポイントは、正規表現を有効化するためにパターンをシングルクォーテーション「’」で囲っておきながら、正規表現を無効化するために「¥」をドット「.」の前に置くという点です。
周りくどいですけれども、わたくしはこうしませんと拡張子をグレップできませんでした><。
おわりに
CentOS で grep を使用しておりました時に、10 分ほど調べたりとわかりませんでしたのでメモです♪
その時は、SQL のファイルに違いがあるのか無いのか調べたかったですの。具体的には diff コマンドでディレクトリを比較して、結果を「.sql」でグレップしようとしておりました。
↓ ファイル名に「sql」文字列が含まれるものも表示され、NG [root@localhost tmp]# diff -qr eccube-2.12.6 eccube-2.13.0 | grep .sql [root@localhost tmp]# diff -qr eccube-2.12.6 eccube-2.13.0 | grep '.sql' [root@localhost tmp]# diff -qr eccube-2.12.6 eccube-2.13.0 | grep \.sql ↓ 拡張子が「.sql」のファイルのみが表示され、OK [root@localhost tmp]# diff -qr eccube-2.12.6 eccube-2.13.0 | grep '\.sql'
なんだか結果が変でしたの。「.sql」が拡張子のファイルだけではなく、ファイル名に「sql」が含まれているファイルまでグレップに引っかかっておりました。
ですので今回ノートしましたの。
なお、こちらのページが参考になりました。ありがとう存じます!
以上です。