2016-01-22 32 views
1

我試圖頭添加到此:如何生成帶有來自org-babel shell輸出的列標題的表格?

#+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 | 

我遇到的困難是注入第二條線。這不起作用:

#+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 | 

任何h ints非常感謝!

回答

2

我覺得: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 
+0

這很接近,但輸出時它顯示逐字。但是,如果您使用':results org drawer'而不是':results org',那麼它會以一張漂亮的表格的形式輸出:-) –

+0

順便說一句,你剛加入來回答這個問題嗎?非常感謝:-) –

+0

偉大的問題和答案。儘管如此,只需要將行標題添加到行和列中作爲後處理步驟,而不依賴於特定語言來處理這些問題將會很有用。 –

相關問題