c/C++文件改名程序
发布网友
发布时间:2023-06-26 06:51
我来回答
共1个回答
热心网友
时间:2024-12-02 14:09
在unix shell里执行这个命令即可
awk '{ if($1 != "total") print $9 " # " $5 }' file.out | cat > file.out
或:
ls -l | awk '{ if($1 != "total") print $9 " # " $5 }' > file.out
不用编程
如果是在要写程序:
void modify()
{
FILE* fp;
char len[16];
char name[128];
if ((fp = fopen("file.out", "r")) == NULL)
{
fprintf(stderr, "fopen error\n");
return;
}
fscanf(fp, "%s %s\n", len, name);
while (!feof(fp))
{
fscanf(fp, "%s %s %s %s %s %s %s %s %s\n", name, name, name, name, len, name, name, name, name);
printf("%s # %s\n", name, len);
}
fclose(fp);
}
执行时用管道输出到另外一个进程如cat在重定向输出到file.out,如:
./foo | cat > file.out
因为foo进程里以读的形式打开了file.out的文件,如果直接将stdout重定向到file.out,会出错,所以用管道输出到另外一个进程,以关闭foo中的文件描述符