2016-01-14 47 views
0

我必須用不同命令的輸出填充(減價)文檔模板。爲簡單起見假設你有一個這樣的模板(我的一個複雜得多):如何在bash中填充文檔模板

$ cat sample_template.txt 
Memory availability: 
-------------------- 
<insert free output here> 

Storage availability: 
--------------------- 
<insert df output here> 

如何插入在正確的地方每個命令的輸出?

回答

2

使用m4

$ cat sample_template.txt 
Memory availability: 
-------------------- 
INSERT_FREE_OUTPUT_HERE 

Storage availability: 
--------------------- 
INSERT_DF_OUTPUT_HERE 

$ m4 -DINSERT_FREE_OUTPUT_HERE="$(free)" -DINSERT_DF_OUTPUT_HERE="$(df -h)" < sample_template.txt 

Memory availability: 
-------------------- 
      total  used  free  shared buffers  cached 
Mem:     <my memory details get printed here> 
-/+ buffers/cache: <my memory details get printed here> 
Swap:     <my memory details get printed here> 

Storage availability: 
--------------------- 
Filesystem  Size Used Avail Use% Mounted on 
<my filesystem details get printed here> 
+0

太好了!謝謝。 :-) – mauro

+0

哦哇,m4!我在這裏有點分歧。一方面,它非常適合這項特殊任務。另一方面,如果你的任務甚至有點不同,它可能會非常神祕。我不會推薦像sed這樣的更受歡迎的工具,但是這個答案或許至少應該注意到有更多的方法可以爲一隻貓蒙皮;並且/或者這個問題應該作爲許多類似問題之一的重複來關閉。 – tripleee