如何將Command Line的結果"帶格式"存檔?? - Linux

Table of Contents

大家好,今天又來問問題了 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

請問有相關的參數可以用嗎?

還是只能自己額外處理??

謝謝大家幫忙。

--

All Comments

Emily avatarEmily2014-05-11
我看到的也是一行一行,你用別的系統開那個檔案對吧?
Jacky avatarJacky2014-05-13
沒有耶,我在Ubuntu 12.04下,使用文章裡的指令,再用cat去
Frederic avatarFrederic2014-05-13
看HDD.txt就是直接連著沒分行的資料。
Doris avatarDoris2014-05-16
哦哦,是你的指令造成的,一定要用這個指令作嗎?
Ophelia avatarOphelia2014-05-19
df -h > log; cat log就會是正常的了
Hamiltion avatarHamiltion2014-05-23
好像真的是因為我把成果指成一個變數的關係才會沒格式耶
Una avatarUna2014-05-24
我照您的指令下都是有格式的,我再實驗看看,謝謝你的幫忙!
感謝您!!
Robert avatarRobert2014-05-25
你也可以pipe給sed去做處理再輸出導向給檔案
不過這樣好像沒什麼意義 只是練習sed指令而已
Franklin avatarFranklin2014-05-27
直接把指令結果輸出導向給檔案就是你在螢幕看到的樣子了
James avatarJames2014-05-28
allHDD=df -H | tee /root/test/HDD.txt 這樣就可以了
John avatarJohn2014-05-29
把IFS設成空或空白,這樣echo就不會把\n當參數分隔符號
Valerie avatarValerie2014-06-02
IFS=" " allHDD=$(df -H) && echo $allHDD > 1.txt
Gilbert avatarGilbert2014-06-04
更正:是 "shell 暫時不會把 \n 當成分隔符號"
Aaliyah avatarAaliyah2014-06-04
或是 IFS="" allHDD=$(df -H) && echo $allHDD > 1.txt
Doris avatarDoris2014-06-06
echo "$allHDD"
Caroline avatarCaroline2014-06-09
樓上正解 echo \n 請加""
Enid avatarEnid2014-06-13
我是指\n字元。要輸出\n 請 -e "\\n"