[英]How to print contents of cells in Jupyter Notebook with Bash
我有一個 .ipynb 文件,想在不運行本地 jupyter 筆記本服務器的情況下查看內容。
我嘗試使用cat my-file.ipynb
但這會輸出很多難以閱讀的 json。 就像是:
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [.............],
"source": [
"import os\n",
"import sys\n",
"from pyspark.sql import SparkSession\n",
"import pyspark.sql.functions as F\n",
...
]
}
如果我之前運行過筆記本,有時這個outputs
值會很長。 我想要的只是source
的價值。 我無權訪問jq 。
How can I print the contents of all source
blocks with just grep
, sed
, awk
, or some other simple bash command?
埃德可以做到這一點。
#!/bin/sh
cp my-file.ipynb stack
cat >> my-file.ed << EOF
/source/
+1
.,\$W source.txt
q
EOF
cat >> source.ed << EOF
$
-1
.,\$d
wq
EOF
ed -s stack < my-file.ed
ed -s source.txt < source.ed
rm -v ./my-file.ed
rm -v ./source.ed
rm -v ./stack
第一個腳本向下搜索“源”字,然后再向下搜索,然后將它和文件末尾之間的所有內容寫入一個單獨的文件。
第二個腳本首先移動到文件末尾,然后向上移動 1,然后刪除該行和文件末尾之間的所有內容。 我這樣做是為了使用相對行編號,因此無論“源”鍵有多長,它都會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.