楼主:
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
请问有相关的参数可以用吗?
还是只能自己额外处理??
谢谢大家帮忙。
我看到的也是一行一行,你用别的系统开那个档案对吧?
楼主:
lovec (不顾)
2014-05-06 13:56:00没有耶,我在Ubuntu 12.04下,使用文章里的指令,再用cat去看HDD.txt就是直接连着没分行的资料。
哦哦,是你的指令造成的,一定要用这个指令作吗?df -h > log; cat log就会是正常的了
楼主:
lovec (不顾)
2014-05-06 14:02:00好像真的是因为我把成果指成一个变量的关系才会没格式耶我照您的指令下都是有格式的,我再实验看看,谢谢你的帮忙!感谢您!!
你也可以pipe给sed去做处理再输出导向给档案不过这样好像没什么意义 只是练习sed指令而已直接把指令结果输出导向给档案就是你在萤幕看到的样子了
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"