Mathematica 노트북 검색 솔루션?

Sep 05 2020

수년에 걸쳐 수백 개의 Mathematica 노트북이 축적되어 있으며이를 검색하고 싶습니다.

다양한 버전의 텍스트 검색 (grep, SilverSearcher, Spotlight)을 사용해 왔지만 제한이 있습니다. 예를 들어, 방금 유틸리티 함수를 사용한 곳을 찾아야했습니다 toc. toc[.nb의 원시 텍스트가 다음과 같기 때문에 텍스트 문자열 검색이 작동하지 않습니다.RowBox[{"toc", "["

이전 버전의 Mathematica는 Spotlight 용 노트북 색인 플러그인을 설치하도록 제안했지만 더 이상이 옵션을 사용할 수 없습니다.

어떤 제안?

답변

12 ChrisDegnen Sep 05 2020 at 01:45

와 같이 패키지에 노트북을 변환 할 수 있습니다 여기에 : -

convert[notebook_, package_] := Module[{nb, str},
  nb = NotebookOpen[notebook, Visible -> False];
  SelectionMove[nb, All, Notebook];
  str = First[
    FrontEndExecute[
     FrontEnd`ExportPacket[NotebookSelection[nb], "InputText"]]];
  NotebookClose[nb];
  Export["text.txt", str];
  Quiet[DeleteFile[package]];
  RenameFile["text.txt", package];]

하나의 노트북을 변환하는 예 :

convert["notebook.nb", "notebook.m"]

그런 다음 .m 파일을 toc[.