複数のjupyter-lab/jupyter-notebookのファイルから特定の文字列を含むファイルを検索する方法 #command 3月 22, 2024 JupyterLabのファイル(`.ipynb`ファイル)はJSON形式で保存されているため、テキスト検索ツールを使用して特定の文字列を含むファイルを検索することができます。以下にいくつかの方法を紹介します。今回は**hoge**という文字列を探す方法を紹介します。 # 方法1: grepを使用する(LinuxまたはMac) ターミナルを開き、JupyterLabファイルが保存されているディレクトリに移動します。次に、以下のコマンドを実行します。 grep -r "hoge" *.ipynb このコマンドは、現在のディレクトリとサブディレクトリ内のすべての`.ipynb`ファイルを再帰的に検索し、"hoge"という文字列を含むファイルとその行を表示します。 # 方法2: Windowsでの検索 Windowsの場合、PowerShellを使用して同様の検索を行うことができます。PowerShellを開き、以下のコマンドを実行します。 Get-ChildItem -Recurse -Filter "*.ipynb" | Select-String -Pattern "hoge" このコマンドは、現在のディレクトリとサブディレクトリ内のすべての`.ipynb`ファイルを検索し、"hoge"という文字列を含むファイルとその行を表示します。 # 方法3: Pythonスクリプトを使用する Pythonスクリプトを使用して、JupyterLabファイルを読み込み、特定の文字列を検索することもできます。以下はその例です。 import os import json def search_ipynb(directory, search_string): for root, dirs, files in os.walk(directory): for file in files: if file.endswith('.ipynb'): file_path = os.path.join(root, file) with open(file_path, 'r', encoding='utf-8') as f: notebook = json.load(f) for cell in notebook['cells']: if 'source' in cell and search_string in ''.join(cell['source']): print(f"Found in {file_path}") search_ipynb('.', 'hoge') このスクリプトは、指定されたディレクトリとそのサブディレクトリ内のすべての`.ipynb`ファイルを再帰的に検索し、"hoge"という文字列を含むファイルのパスを表示します。 これらの方法を使用して、"hoge"という文字列を含むJupyterLabのファイルを検索することができます。