我使用ag
搜索我的笔记。我的笔记写在Markup文件和Jupyter笔记本中包含的Markdown单元格中。
我可以使用ag --markdown ...
方便地搜索Markdown文件。如果可以使用Jupyter笔记本文件进行类似的操作,那将非常方便。但这需要ag
了解这些笔记本的格式。
我的问题:有没有办法在Jupyter笔记本文件中搜索仅 Markdown单元格中的给定字符串?我可以接受解决方案中使用的任何模式匹配器(ag
,grep
,ack
,...)。
p.s。笔记本用JSON编写。这是一个示例:
$ head notebook.ipynb
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"THIS IS A MARKDOWN STRING"
]
},
{
答案 0 :(得分:1)
我不知道ag
是否可以与过滤器接口,但是
从笔记本文件中获取Markdown,以下Python代码就足够了
import nbformat
from sys import argv
nb = nbformat.read(argv[1], nbformat.NO_CONVERT)
for cell in nb.cells:
if cell.cell_type == 'markdown' : print(cell.source)
答案 1 :(得分:1)
我希望使用jq
过滤掉python笔记本的所有降价单元格。例如,如果您只想吐出所有降价来源,可以使用以下内容:
$< notebook.ipynb | jq '.cells[]|select(.cell_type == "markdown")|.source[]'
jq很快,在将ipython笔记本保存到git时用于更精细的解决方案,例如:Using IPython notebooks under version control