从命令行搜索 Jupyter notebook 降价单元格

mar*_*nix 5 markdown grep ack ag jupyter-notebook

ag用来搜索我的笔记。我的笔记记录在 Jupyter 笔记本中包含的 Markdown 文件和 Markdown 单元格中。

我可以方便地搜索 Markdown 文件ag --markdown ...。如果可以对 Jupyter 笔记本文件进行类似的操作,那将非常方便。但这需要ag了解这些笔记本的格式。

我的问题:有没有办法在 Markdown 单元格中搜索Jupyter 笔记本文件中的给定字符串?我可以接受解决方案中使用的任何模式匹配器 ( ag, grep, ack, ...)。

ps笔记本由 JSON 组成。这是一个示例:

$ head notebook.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "THIS IS A MARKDOWN STRING"
   ]
  },
  {
Run Code Online (Sandbox Code Playgroud)

gre*_*ory 2

我希望用来jq过滤掉 python 笔记本的所有降价单元。例如,如果您只想吐出所有 Markdown 源,您可以使用以下内容:

$< notebook.ipynb | jq '.cells[]|select(.cell_type == "markdown")|.source[]'
Run Code Online (Sandbox Code Playgroud)

jq 速度很快,并且在将 ipython 笔记本保存到 git 时用于更复杂的解决方案,例如:在版本控制下使用 IPython 笔记本