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

看板Linux作者 (不顧)時間10年前 (2014/05/06 13:53), 編輯推噓2(2017)
留言19則, 7人參與, 最新討論串1/1
大家好,今天又來問問題了 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://www.ptt.cc/bbs/Linux/M.1399355604.A.596.html

05/06 13:55, , 1F
我看到的也是一行一行,你用別的系統開那個檔案對吧?
05/06 13:55, 1F

05/06 13:56, , 2F
沒有耶,我在Ubuntu 12.04下,使用文章裡的指令,再用cat去
05/06 13:56, 2F

05/06 13:57, , 3F
看HDD.txt就是直接連著沒分行的資料。
05/06 13:57, 3F

05/06 13:59, , 4F
哦哦,是你的指令造成的,一定要用這個指令作嗎?
05/06 13:59, 4F

05/06 14:00, , 5F
df -h > log; cat log就會是正常的了
05/06 14:00, 5F

05/06 14:02, , 6F
好像真的是因為我把成果指成一個變數的關係才會沒格式耶
05/06 14:02, 6F

05/06 14:03, , 7F
我照您的指令下都是有格式的,我再實驗看看,謝謝你的幫忙!
05/06 14:03, 7F

05/06 14:03, , 8F
感謝您!!
05/06 14:03, 8F

05/06 14:38, , 9F
你也可以pipe給sed去做處理再輸出導向給檔案
05/06 14:38, 9F

05/06 14:38, , 10F
不過這樣好像沒什麼意義 只是練習sed指令而已
05/06 14:38, 10F

05/06 14:39, , 11F
直接把指令結果輸出導向給檔案就是你在螢幕看到的樣子了
05/06 14:39, 11F

05/06 23:59, , 12F
allHDD=df -H | tee /root/test/HDD.txt 這樣就可以了
05/06 23:59, 12F

05/07 06:12, , 13F
把IFS設成空或空白,這樣echo就不會把\n當參數分隔符號
05/07 06:12, 13F

05/07 06:13, , 14F
IFS=" " allHDD=$(df -H) && echo $allHDD > 1.txt
05/07 06:13, 14F

05/07 06:14, , 15F
更正:是 "shell 暫時不會把 \n 當成分隔符號"
05/07 06:14, 15F

05/07 06:15, , 16F
或是 IFS="" allHDD=$(df -H) && echo $allHDD > 1.txt
05/07 06:15, 16F

05/07 15:35, , 17F
echo "$allHDD"
05/07 15:35, 17F

05/08 16:30, , 18F
樓上正解 echo \n 請加""
05/08 16:30, 18F

05/08 16:31, , 19F
我是指\n字元。要輸出\n 請 -e "\\n"
05/08 16:31, 19F
文章代碼(AID): #1JQ7ZKMM (Linux)