作者lovec (不顧)
看板Linux
標題[問題] 如何將Command Line的結果"帶格式"存檔??
時間Tue May 6 13:53:21 2014
大家好,今天又來問問題了 XD
我的問題是如何在Command line下有格式地儲存結果為檔案
舉例來說 :
allHDD=$(df -H) && echo $allHDD > /root/test/HDD.txt
這樣就可以儲存下df -H後得到的硬碟資訊
但是這些資料會以無格式的方式被儲存
也就是在Command line下看到的df -H會是 :
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 981G 19G 913G 2% /
/dev/sdb2 4.6G 161M 4.5G 4% /syshdd
被存入檔案HDD.txt後是
/dev/sda1 981G 19G 913G 2% / /dev/sdb2 4.6G 161M 4.5G 4% /syshdd
(中間都隔一個space)
請問是否有參數可以利用來將資料"一行一行"的存起來??
簡單說就是希望一個Filesystem獨立一行存起來,如下例 :
/dev/sda1 981G 19G 913G 2% /
/dev/sdb2 4.6G 161M 4.5G 4% /syshdd
請問有相關的參數可以用嗎?
還是只能自己額外處理??
謝謝大家幫忙。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.70.82
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Linux/M.1399355604.A.596.html
1F:→ Cypresslin:我看到的也是一行一行,你用別的系統開那個檔案對吧? 05/06 13:55
2F:→ lovec:沒有耶,我在Ubuntu 12.04下,使用文章裡的指令,再用cat去 05/06 13:56
3F:→ lovec:看HDD.txt就是直接連著沒分行的資料。 05/06 13:57
4F:→ Cypresslin:哦哦,是你的指令造成的,一定要用這個指令作嗎? 05/06 13:59
5F:→ Cypresslin:df -h > log; cat log就會是正常的了 05/06 14:00
6F:→ lovec:好像真的是因為我把成果指成一個變數的關係才會沒格式耶 05/06 14:02
7F:→ lovec:我照您的指令下都是有格式的,我再實驗看看,謝謝你的幫忙! 05/06 14:03
8F:→ lovec:感謝您!! 05/06 14:03
9F:→ Microscft:你也可以pipe給sed去做處理再輸出導向給檔案 05/06 14:38
10F:→ Microscft:不過這樣好像沒什麼意義 只是練習sed指令而已 05/06 14:38
11F:→ Microscft:直接把指令結果輸出導向給檔案就是你在螢幕看到的樣子了 05/06 14:39
12F:→ Rhinocero:allHDD=df -H | tee /root/test/HDD.txt 這樣就可以了 05/06 23:59
13F:→ nullspace:把IFS設成空或空白,這樣echo就不會把\n當參數分隔符號 05/07 06:12
14F:→ nullspace:IFS=" " allHDD=$(df -H) && echo $allHDD > 1.txt 05/07 06:13
15F:→ nullspace:更正:是 "shell 暫時不會把 \n 當成分隔符號" 05/07 06:14
16F:→ nullspace:或是 IFS="" allHDD=$(df -H) && echo $allHDD > 1.txt 05/07 06:15
17F:推 yvb:echo "$allHDD" 05/07 15:35
18F:推 sppmg:樓上正解 echo \n 請加"" 05/08 16:30
19F:→ sppmg:我是指\n字元。要輸出\n 請 -e "\\n" 05/08 16:31