Linux Mintで特定のディレクトリ内にある複数のmdファイルから特定文字列を検索する方法
フォルダ(ディレクトリ)の中にある、複数のファイルから特定の文字を含むファイルを一覧で抽出するコマンド
パソコン環境
- x230(Lenovo ThinkPad)
- LinuxMint 22.2
要件
LinuxMint で、特定のディレクトリの中にある「mdファイル」から「あああ」の文字列を探す bash コマンドは?
特定のディレクトリ内の .md ファイルから「あああ」という文字列を検索するには、grep コマンドを使うことができます。次のように実行します:
grep -r "あああ" /path/to/directory/*.md
右クリックで「端末で開く」を使うことが多いのでメモ。
grep -r "あああ" ./*.md
説明
- grep:文字列を検索するコマンド
- -r:指定したディレクトリを再帰的に検索(サブディレクトリ内も含む)
- "あああ":検索する文字列
- /path/to/directory/*.md:検索対象のディレクトリ内の .md ファイルに限定して検索
このコマンドを実行すると、指定したディレクトリ内の .md ファイルに「あああ」が含まれている場合、その行が表示されます。
もし、サブディレクトリ内も含めて検索したい場合は、*.md の代わりに以下のようにしても良いです:
grep -r "あああ" /path/to/directory --include="*.md"
このコマンドでも同様に、.md ファイルの中から「あああ」を探せます。
.txt に書き出す
ターミナル画面の結果表示で、ファイル多くなりすぎると見切れてしまうので、テキストファイルに書き出したいとき:
grep -rl "あああ" ./*.md > ../search.txt
grep -rl "あああ" ./*.md > "../search_$(date +'%Y%m%d_%H%M%S').txt"
パスを指定すると、ディレクトリ内に埋もれにくいので、親ディレクトリ(../)に「txtファイルが保存」されます。