从命令行搜索Jupyter笔记本降级单元格

时间:2018-05-09 14:11:30

标签: grep jupyter-notebook markdown ack ag

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

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

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

p.s。笔记本用JSON编写。这是一个示例:

$ head notebook.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "THIS IS A MARKDOWN STRING"
   ]
  },
  {

2 个答案:

答案 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

相关问题