数据格式化(:wrap)
json格式化
#+BEGIN_SRC sh :results code :wrap SRC js :exports both curl http://httpbin.org/get#+END_SRC#+RESULTS:#+BEGIN_SRC js{ "args": {}, "headers": { "Accept": "*/*", "Connection": "close", "Host": "httpbin.org", "User-Agent": "curl/7.47.0" }, "origin": "180.167.20.58", "url": "http://httpbin.org/get"}#+END_SRC
其他格式化
#+BEGIN_SRC sh :wrap QUOTE :results raw :exports both date#+END_SRC#+RESULTS:#+BEGIN_QUOTEFri Nov 3 23:05:34 CST 2017#+END_QUOTE
变量设置在Header中
** 变量设置在Header中 :PROPERTIES: :ID: d7b197d7-f925-47b7-bcc0-37e182761619 :header-args:shell: :var host="google.com" :results pp :session brantou :exports both :END: #+BEGIN_SRC shell ping $host -c 2 #+END_SRC #+RESULTS: : : $ PING google.com (192.168.83.230) 56(84) bytes of data. : 64 bytes from 192.168.83.230: icmp_seq=1 ttl=128 time=9.60 ms : 64 bytes from 192.168.83.230: icmp_seq=2 ttl=128 time=25.4 ms : : --- google.com ping statistics --- : packet loss, time 1001ms : rtt min/avg/max/mdev = 9.609/17.508/25.408/7.900 ms 覆盖变量 *host* 和 *session* 置为空! #+BEGIN_SRC shell :var host="baidu.com" :session none ping $host -c 2 #+END_SRC #+RESULTS: : PING baidu.com (111.13.101.208) 56(84) bytes of data. : 64 bytes from 111.13.101.208: icmp_seq=1 ttl=128 time=35.5 ms : 64 bytes from 111.13.101.208: icmp_seq=2 ttl=128 time=49.2 ms : : --- baidu.com ping statistics --- : 2 packets transmitted, 2 received, 0% packet loss, time 1002ms : rtt min/avg/max/mdev = 35.517/42.361/49.206/6.847 ms
结果的预处理(:post)
#+NAME: img_wrap#+BEGIN_SRC python :var img_path="" :results output img_path=img_path.replace('[[file:..', '').replace(']]', '') print('<img src="'+img_path+'" />')#+END_SRC#+HEADER: :file ../images/devOps/just-try-post.png :exports both#+BEGIN_SRC plantuml :mkdirp yes :post img_wrap(img_path=*this*) :wrap EXPORT html @startuml cli -> serv: auth req serv --> cli: auth res @enduml#+END_SRC#+RESULTS:#+BEGIN_EXPORT html<img src="/images/devOps/just-try-post.png" />#+END_EXPORT
noweb的引用(:noweb-ref)
#+HEADER: :tangle ../src/devOps/noweb_ref.sh :mkdirp yes#+BEGIN_SRC shell :noweb yes :shebang #!/bin/sh <<fullest-disk>>#+END_SRC** the mount point of the fullest disk :PROPERTIES: :header-args:shell: :noweb-ref fullest-disk :END:*** query all mounted disks #+BEGIN_SRC shell df \ #+END_SRC*** strip the header row #+BEGIN_SRC shell |sed '1d' \ #+END_SRC*** sort by the percent full #+BEGIN_SRC shell |awk '{print $5 " " $6}' | sort -n | tail -1 \ #+END_SRC*** extract the mount point #+BEGIN_SRC shell |awk '{print $2}' #+END_SRC
tangle出的代码如下:
#!/bin/shdf \|sed '1d' \|awk '{print $5 " " $6}' | sort -n | tail -1 \|awk '{print $2}'
预处理/后置操作(:prologue/:epilogue)
在做相关操作时,可能需要预先初始化,同时又不想这些初始化过程出现在代码流程中,这个时候你可使用 *:prologue* 来关联相关语句来达到预处理的效果。#+NAME: prologue-example#+BEGIN_SRC shell :prologue "echo yep; exit 0" :exports both echo "nope"#+END_SRC#+RESULTS: prologue-example: yep*:epilogue* 正好和 *:prologue* 完成的功能相反,用于后置处理,完成清理工作。#+BEGIN_SRC shell :epilogue "exit 0; echo yep" :exports both echo "nope"#+END_SRC#+RESULTS:: nope
批量执行
可在命令行中调用代码块实现的函数,如下面所示:
#!/bin/sh# -*- mode: shell-script -*-## tangle files with org-mode#DIR='pwd'FILES=""# wrap each argument in the code required to call tangle on itfor i in $@; do FILES="$FILES \"$i\""doneemacs -Q --batch \ --eval "(progn(require 'org)(require 'ob)(require 'ob-tangle)(mapc (lambda (file) (find-file (expand-file-name file \"$DIR\")) (org-babel-tangle) (kill-buffer)) '($FILES)))" 2>&1 | grep tangled
连接mysql
#+BEGIN_SRC sql show tables;#+END_SRC#+RESULTS:| Tables_in_mysql ||---------------------------|| columns_priv || db || engine_cost || event || func || general_log || gtid_executed || help_category || help_keyword || help_relation || help_topic || innodb_index_stats || innodb_table_stats || ndb_binlog_index || plugin || proc || procs_priv || proxies_priv || server_cost || servers || slave_master_info || slave_relay_log_info || slave_worker_info || slow_log || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |#+BEGIN_SRC sql SELECT host, user FROM user WHERE 1;#+END_SRC#+RESULTS:| host | user ||-----------+------------------|| % | brantou || localhost | debian-sys-maint || localhost | mysql.session || localhost | mysql.sys || localhost | root |
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。