将文件格式化并输出

2014-11-24 02:55:18 · 作者: · 浏览: 0


我们是搞运维的。由于要放假了 需要知道磁盘的使用情况,所以将df -h好多服务器的结果输出到一个文件中,再写个c++程序过滤之。df -h 的文件列表格式如下:

10.109.10.1
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 2.4G 12G 18% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda5 200G 175G 25G 87.5% /opt

10.109.10.2

Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 2.4G 12G 18% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda5 200G 175G 25G 87.5% /opt

10.109.10.3

..........


..............


................

就想把 ip 和 想了解剩余磁盘空间那行输出到文件中,这样看起来一目了然。

cat fileop.cpp

#include
#include
#include
#include
using namespace std;
void GrepAndWrite(ifstream &fs)
{
char* s;
s = new char[160];
string str="";
string searchip = "10.1";
string searchuse3="opt";
string strip;
string struse;
ofstream fo ("/opt/test/diskproc",ios::app);
while (! fs.eof() )
{
fs.getline(s,100);
//cout< str = s;
//strip=""; struse="";
if(str.find(searchip) !=string::npos)
{
strip=str;
}
else
{
if(str.find(searchuse3)!=string::npos )
{
if(strip!="")
{
struse=str;
}
}
}

if(strip !="" && struse !="")
{
//strip=""; struse="";
//write file
{
fo< }
strip=""; struse="";
}
}
fo.close();
}

int main()
{
ifstream fread("/opt/test/diskinfo",ios::out);
if(!fread.is_open())
{
std::cout<<"file open fail~"< return 0;
}
else
{
GrepAndWrite(fread);
}
fread.close();

return 0;
}