org-babel - 如何从 org-babel shell 输出中生成带有列标题的表格?

标签 org-babel

我正在尝试为此添加标题:

#+BEGIN_SRC sh :dir ~ :results table
  for n in 1 2 3 4; do
      echo $n $(($n * $n))
  done
#+END_SRC

结果是:
#+RESULTS:
| 1 |  1 |
| 2 |  4 |
| 3 |  9 |
| 4 | 16 |

我想要的输出是:
#+RESULTS:
| N | N*N |
|---+-----|
| 1 |   1 |
| 2 |   4 |
| 3 |   9 |
| 4 |  16 |

我遇到的困难是注入(inject)第二条线。这不起作用:
#+BEGIN_SRC sh :dir ~ :results table
  echo "N N**2"
  echo "|-"
  for n in 1 2 3 4; do
      echo $n $(($n * $n))
  done
#+END_SRC

这导致:
#+RESULTS:
| N | N**2 |
|   |    - |
| 1 |    1 |
| 2 |    4 |
| 3 |    9 |
| 4 |   16 |

我也不能只使用空行,如建议 here :
#+BEGIN_SRC sh :dir ~ :results table
  echo "N N**2"
  echo 
  for n in 1 2 3 4; do
      echo $n $(($n * $n))
  done
#+END_SRC

因为这导致:
#+RESULTS:
| N | N**2 |
|   |      |
| 1 |    1 |
| 2 |    4 |
| 3 |    9 |
| 4 |   16 |

非常感谢任何提示!

最佳答案

我认为 :results org是您要查找的内容,然后使您的代码输出您自己键入的内容作为带有分隔符的表格(引用以保护外壳)

#+BEGIN_SRC sh :dir ~ :results org
  echo "|N|N**2"
  echo "|-"
  for n in 1 2 3 4; do
      echo "|" $n "|" $(($n * $n))
  done
#+END_SRC

这产生了这个(emacs 25.1.50.1,org 8.3.3):
#+RESULTS:
#+BEGIN_SRC org
| N | N**2 |
|---+------|
| 1 |    1 |
| 2 |    4 |
| 3 |    9 |
| 4 |   16 |
#+END_SRC

关于org-babel - 如何从 org-babel shell 输出中生成带有列标题的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34950757/

相关文章:

c - 为什么这个 org-babel c 片段没有产生输出?

emacs - 在 org 模式下使用 babel 捕获 shell 命令的输出

javascript - emacs org-babel 中没有用于 javascript 的 org-babel-execute 函数

emacs - 打开 org 模式文件时,Eval 源代码会阻塞。

bash - 我如何在 org babel 中加载 bash(而不是 sh)以启用 #+BEGIN_SRC bash?

emacs - Org-Babel Clojure Cider NRepl 坏了?

emacs - 字节码 : Symbol's value as variable is void: org-babel-tangle-lang-exts

emacs - 从代码块的结果创建组织表

r - 使用 R 的 org-babel 代码没有输出