[問題] 如何將Command Line的結果"帶格式"存檔??

作者: lovec (不顧)   2014-05-06 13:53:21
大家好,今天又來問問題了 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
請問有相關的參數可以用嗎?
還是只能自己額外處理??
謝謝大家幫忙。
作者: Cypresslin (啊哈哈~~)   2014-05-06 13:55:00
我看到的也是一行一行,你用別的系統開那個檔案對吧?
作者: lovec (不顧)   2014-05-06 13:56:00
沒有耶,我在Ubuntu 12.04下,使用文章裡的指令,再用cat去看HDD.txt就是直接連著沒分行的資料。
作者: Cypresslin (啊哈哈~~)   2014-05-06 13:59:00
哦哦,是你的指令造成的,一定要用這個指令作嗎?df -h > log; cat log就會是正常的了
作者: lovec (不顧)   2014-05-06 14:02:00
好像真的是因為我把成果指成一個變數的關係才會沒格式耶我照您的指令下都是有格式的,我再實驗看看,謝謝你的幫忙!感謝您!!
作者: Microscft (小軟哥)   2014-05-06 14:38:00
你也可以pipe給sed去做處理再輸出導向給檔案不過這樣好像沒什麼意義 只是練習sed指令而已直接把指令結果輸出導向給檔案就是你在螢幕看到的樣子了
作者: Rhinocero (愛火快滅了)   2014-05-06 23:59:00
allHDD=df -H | tee /root/test/HDD.txt 這樣就可以了
作者: nullspace   2014-05-07 06:12:00
把IFS設成空或空白,這樣echo就不會把\n當參數分隔符號IFS=" " allHDD=$(df -H) && echo $allHDD > 1.txt更正:是 "shell 暫時不會把 \n 當成分隔符號"或是 IFS="" allHDD=$(df -H) && echo $allHDD > 1.txt
作者: yvb   2014-05-07 15:35:00
echo "$allHDD"
作者: sppmg (sppmg)   2014-05-08 16:30:00
樓上正解 echo \n 請加""我是指\n字元。要輸出\n 請 -e "\\n"

Links booklink

Contact Us: admin [ a t ] ucptt.com