当前位置:  技术问答>linux和unix

linux文件内容拷贝的问题

    来源: 互联网  发布时间:2017-02-28

    本文导语:  请问: 在linux中,需要把文件出现abcd字符之前的部分拷贝到一个文件中,abcd及之后的内容拷贝到另外一个文件中,请问怎么用linux shell脚本或者linux C编程实现? 先谢谢啦~ | /***** 请问: 在linux中,...

请问:
在linux中,需要把文件出现abcd字符之前的部分拷贝到一个文件中,abcd及之后的内容拷贝到另外一个文件中,请问怎么用linux shell脚本或者linux C编程实现?

先谢谢啦~

|


/*****
请问:
在linux中,需要把文件出现abcd字符之前的部分拷贝到一个文件中,abcd及之后的内容拷贝到另外一个文件中,
请问怎么用linux shell脚本或者linux C编程实现?
*****/

#include 
#include 
#include 

int main()
{
FILE *fp;
FILE *before;
FILE *after;
char *p = NULL;
int ch;
char *separate_str = "abcd";
int SIZE = strlen(separate_str);

char queue_str[SIZE+1];//用数组作为队列,用来缓存从文件中读出的字符
if ((fp = fopen("file.txt", "r")) == NULL)
{
printf("open file.txt error !");
exit(1);
}

if ((before = fopen("before.txt", "w")) == NULL)
{
printf("open before.txt error !");
exit(1);
}
if ((after = fopen("after.txt", "w")) == NULL)
{
printf("open after.txt error !");
exit(1);
}

fgets(queue_str, SIZE, fp);
while ((ch = fgetc(fp)) != EOF)
{
queue_str[SIZE - 1] = ch;
if (strcmp(queue_str, separate_str) != 0)
{
fputc(ch, before);
}
else
{
break;
}

p = &queue_str[1];
strcpy(queue_str, p);
}

fseek(before, -3, SEEK_END);
fputc('', before); //delete the last string "abc" in file before.txt
fputc('', before);
fputc('', before);

while ((ch = fgetc(fp)) != EOF)
{
fputc(ch, after);
}

fclose(fp);
fclose(before);
fclose(after);



return 0;
}

|
shell 基本上都是处理文本行的

|
新手写了一个,如有不对,请见谅并指教。

#include 
#include 
#include 
#include 

int main(void)
{
char str[50]="";
printf("please input the separative string, ex. "abcd"n");
scanf("%s",str);
int fd1=open("file.txt",O_RDONLY);
if(fd1==-1) perror("open file.txt failed"),exit(-1);
int fd2=open("befor.txt",O_RDWR|O_CREAT|O_TRUNC,0666);
if(fd2==-1) perror("create befor.txt failed"),exit(-1);
int fd3=open("after.txt",O_RDWR|O_CREAT|O_TRUNC,0666);
if(fd3==-1) perror("create after.txt failed"),exit(-1);
char first=' ';
int len=strlen(str);
char buff[len];
buff[len-1]='';
int readCount;
while((readCount=read(fd1,&first,1))!=0)
{

if(readCount==-1) printf("errorn"),exit(-2);
if(first==str[0]) {//先比较第一个字符是不是'a';
read(fd1,buff,len-1);
if(strcmp(buff,str+1)==0) {//如果第一个字符是'a',就接着比较'a'后面的字符串
off_t afterBeg=lseek(fd1,0,SEEK_CUR);//后半段的开始位置
off_t beforEnd=lseek(fd1,-len,SEEK_CUR);//前半段的结束位置
off_t beforBeg=lseek(fd1,0,SEEK_SET);
long beforSize=beforEnd-beforBeg;
int count=0;
int lastRead=beforSize%256;//每次读256个字节,最后一次读的大小 
while(count

    
 
 

您可能感兴趣的文章:

  • 关于redhat linux7.3文件拷贝:我要将/dev下的全部文件拷贝到另一个已mount的硬盘上,怎么大部分文件拷不过去呢??
  • 从Linux拷贝文件时,总出现符号链接错误时怎么回事?
  • Linux拷贝NTFS大文件
  • [Suse Linux]两台机器上怎样能快速拷贝大量的文件
  • 怎样在linux下用命令实现cp目录a下的字目录的所有内容到b目录中,cp子目录内容??? iis7站长之家
  • winscp windows从linux 拷贝文件的做成时间不对。。。
  • 请问在Linux中,rcp远程拷贝命令的使用方法?
  • Linux下如何拷贝屏幕上内容?(在线等待)
  • linux 从一个另一个账户下拷贝文件到当前账户的命令
  • 关于linux下文件拷贝的问题???
  • linux下拷贝文件加密
  • 怎么用rcp拷贝文件啊?我对于linux命令不太熟
  • 如何拷贝linux文件夹
  • 有什么方法可以吧linux里面的nano里写的文件拷贝出来吗?
  • 如何从虚拟机中的Linux系统中拷贝文档?
  • linux下如何拷贝文件?
  • 怎样从Linux里拷贝WINXP系统里的文件?
  • 用VMware虚拟机装的linux 4.0 ,请问能否实现将linux中的图形界面下进行操作时将其文本什么拷贝到Windwos系统中?
  • 急:把安装了Linux的硬盘完全拷贝到另一张硬盘上
  • Linux 拷贝150G文件的问题
  • Linux_centos_redhat下tar命令解压tgz文件方法
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • Linux查找包含指定文字的文件(linux查找指定文件)
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 请问LINUX内核下,哪些文件夹下的文件是跟LINUX的硬件平台无关的?
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 请问各位linux开发大虾,linux下有类似VC中depends的工具可以查看文件调用了哪些so文件吗?
  • linux内存文件系统ramfs实现原理
  • 急::在Linux下怎么根据另一台windows或linux的文件名,去得到这个文件
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样在linux下用命令实现cp目录a下的字目录的所有内容到b目录中,cp子目录内容???
  • Linux下抓的http包,内容是gzip压缩过的,要如何解压出原来的内容?
  • 怎样在linux下用命令实现cp目录a下的子目录的所有内容到b目录中,只cp目录a的子目录内容???
  • Linux:为什么/lib/modules/linux/kernel文件夹里内容突然没有了
  • 有什么方法可以修改 linux 的 grub 的“操作系统选择菜单”内容
  • 如何在windows中访问linux分区中的内容?
  • linux如何用命令清空文件的内容但不删除文件
  • Linux 查找文件内容的命令
  • linux下解析pdf内容
  • linux下的从数据库取出来中文内容是乱码?
  • linux命令行模式下如何修改文件内容
  • linux如何获取在浏览器或者文本编辑器中复制的内容
  • linux c 对文件部分内容删除 谁做过,给俺提示一下,谢谢
  • linux 下如何修改文件名,文件内容
  • linux 找回控制台滚过的内容
  • linux 下如何共享使用windows下的内容
  • linux下将查询的内容保存到.txt文本文件中.
  • Linux脚本语言修改文件里的内容
  • linux 图形界面任务栏开始菜单的内容记录在那?我想对其编辑.
  • linux中有哪些技术可以实现包过滤、内容过滤的技术?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,