100分讨论在unix上用的去掉windows文件中的换行符(0x0D)的shell或c程序!

cloudred 2001-03-19 04:41:00
加精
问题描述:对于换行,window下用回车换行(0A0D)来表示,unix下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
...全文
776 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sarocky 2001-04-20
  • 打赏
  • 举报
回复
找不到 dtox,不知道是哪里的?
cat file1 | sed s/\013$// > file2
cloudred 2001-04-20
  • 打赏
  • 举报
回复
对不起,给分稍晚了!
laowei 2001-04-20
  • 打赏
  • 举报
回复
tr -d "\015" <A >B
or
strings A>B
给分吧
devilhjf 2001-04-20
  • 打赏
  • 举报
回复
可能有点小错误!但大致如此!
devilhjf 2001-04-20
  • 打赏
  • 举报
回复
#!/usr/bin/perl -w

open(FHD,"path/filename");

while(<FHD>){
s/\^M//;
}
close FHD;
laowei 2001-04-19
  • 打赏
  • 举报
回复
tr -d "\r" <src >dest
100分
penguincn 2001-04-12
  • 打赏
  • 举报
回复
这个问题在unix 下不值得讨论,
因为在unix下有太多的工具可以解决它。
用 dtox
tr
awk
perl
vim 的查找替代功能
。。。
都可以搞掂!

penguincn 2001-04-12
  • 打赏
  • 举报
回复
这个问题在unix 下不值得讨论,
因为在unix下有太多的工具可以解决它。
用 dtox
tr
awk
perl
vim 的查找替代功能
。。。
都可以搞掂!

bomb_hero 2001-04-11
  • 打赏
  • 举报
回复
本来就有的啊
dtox filename > filename
hem 2001-04-11
  • 打赏
  • 举报
回复
/* filename: dtox.c */

#include <stdio.h>

void main(int argc, char *argv[])
{
FILE *fr,*fw;
char c;
if(argc!=3){
printf("Usage: %s dosfilename unixfilename\n",argv[0]);
return;
}
if(NULL==(fr=fopen(argv[1],"rb"))){
printf("文件%s不存在!\n",argv[1]);
return;
}
if(NULL==(fw=fopen(argv[2],"wb"))){
printf("不能写文件!\n");
return;
}
while(1){
c=fgetc(fr);
if(feof(fr))
break;
if(c=='\r')/*用'\r'来表示^M也不知道对不对,不对自己改*/
continue;
fputc(c,fw);
}
fclose(fr);
fclose(fw);
}

我修改过的 版权归原主 , 呵呵

cc -o dtox dtox.c ;
然后把 dtox 拷贝到 /usr/bin/ 目录
Daiver 2001-04-10
  • 打赏
  • 举报
回复
用dtox命令就可以了!
dtox 111 >222
Azz1 2001-04-10
  • 打赏
  • 举报
回复
用awk最简单
awk -e'{
gsub($0,...) 好像是 gsub($0, "\015")
printf "%s\n", $0
}' infile > outfile
waq 2001-04-09
  • 打赏
  • 举报
回复
有注释的那一行尾少了 */ 号,加上吧
waq 2001-04-09
  • 打赏
  • 举报
回复
在线编了一个,希望有帮助,主要是理解意思,fopen函数中的第二个参数中有个b字符,表示以二进制方式打开文件,如果不对,把rb和wb写成br和bw,我记不清了,试一试吧

#include <stdio.h>

void main(int argc, char *argv)
{
FILE *fr,*fw;
char c;
if(argc!=3){
printf("Usage: %s dosfilename unixfilename\n",argv);
return;
}
if(NULL==(fr=fopen(argv[1],"rb")){
printf("文件%s不存在!\n",argv[1]);
return;
}
if(NULL==(fw=fopen(argv[2],"wb")){
printf("不能写文件!\n");
return;
}
while(1){
c=fgetc(fr);
if(feof(fr))
break;
if(c=='\r')/*用'\r'来表示^M也不知道对不对,不对自己改
continue;
fputc(fw,c);
}
fclose(fr);
fclose(fw);
}
cloudred 2001-03-23
  • 打赏
  • 举报
回复
007sampras: dtox filename就行?
cloudred 2001-03-23
  • 打赏
  • 举报
回复
有个在windows下用的win->unix的程序,可惜常常进入Unix看文件时,发现文件里有好多^M,不想再退回到windows转换后再退到unix里,退来退去就没兴致搞了!我是unix新手,也想学学unix下的c编程,对诸位高手来说,这个小程序5分钟都用不了吧!呵呵
007sampras 2001-03-23
  • 打赏
  • 举报
回复
# dtox filename
cloudred 2001-03-22
  • 打赏
  • 举报
回复
是呀,就这么简单。
我们头说了:“生活本来就是这么简单!”
Kevin_qing 2001-03-22
  • 打赏
  • 举报
回复
用strchr查找,在替换为space好了
jerrymi 2001-03-22
  • 打赏
  • 举报
回复
用二进制传送文件就没这个问题了
加载更多回复(1)
内容概要:本文全面介绍了数据流图(DFD)的概念、构成元素及其重要性。数据流图是从数据传递和加工的角度,以图形方式表达系统逻辑功能、数据流向和变换过程的工具。文章详细解释了数据流图的四个基本元素:数据流、加工、数据存储和外部实体,并通过实例说明了这些元素在实际场景的应用。文强调了数据流图在软件开发需求析和业务流程优化的关键作用,通过绘制顶层、层和底层数据流图,逐步细化系统功能,确保数据流向和处理逻辑的清晰性。此外,文章还指出了常见绘制误区及解决方法,并以在线购物系统为例进行了实战析,展示了从需求析到数据流图绘制的全过程。 适合人群:软件工程师、业务析师、系统设计师以及对系统析与设计感兴趣的初学者。 使用场景及目标:①帮助开发团队在需求析阶段清晰展示数据流动和处理过程,避免理解偏差;②辅助企业梳理和优化业务流程,识别效率低下的环节,提升运营效率;③为系统设计和开发提供详细的逻辑框架,确保各模块的功能明确,减少开发错误。 阅读建议:本文内容详实,涵盖了从理论到实践的各个方面。建议读者在学习过程结合实际项目背景,逐步掌握数据流图的绘制技巧,并通过反复练习和优化,加深对系统析与设计的理解。
资源下载链接为: https://pan.quark.cn/s/5c50e6120579 《CoffeeTime_0.99.rar:主板BIOS修改工具详述》 在计算机硬件领域,BIOS(基本输入输出系统)是计算机启动时最先加载的软件,它负责初始化硬件设备,并为操作系统提供基本的交互功能。不过,随着处理器技术的持续进步,部主板可能无法原生支持更新的CPU型号。为解决这一问题,一些技术爱好者和专业人士会通过修改主板BIOS,也就是俗称的“魔改”,来提升其兼容性。本文将深入剖析名为“CoffeeTime_0.99.rar”的工具,它是一款专门用于主板BIOS修改,以实现对第6、7、8、9代英特尔CPU支持的工具。 我们先来看“CoffeeTime.exe”,这是该工具的主程序文件。通常情况下,它会配备一套直观易用的用户界面,方便用户对BIOS进行修改操作。不过,在使用该工具之前,用户必须具备一定的电脑硬件知识,因为一旦操作失误,就可能导致系统运行不稳定,甚至无法启动。对于初学者而言,谨慎操作至关重要,否则可能会造成不可挽回的损失。 “readme.txt”是软件包常见的文档,一般会包含使用指南、注意事项以及开发者提供的其他重要信息。在使用CoffeeTime之前,用户务必要仔细阅读该文件,因为里面可能包含了如何正确运行程序、避免错误操作以及解压后具体步骤等关键内容。 “bin”和“data”是两个文件夹,它们可能包含了用于BIOS修改的各种二进制文件和数据。“bin”文件夹通常会包含特定版本的BIOS固件或用于修改的工具,而“data”文件夹则可能包含更新CPU微码、识别信息等必要的数据文件。在进行BIOS修改的过程,这些文件会被程序调用,从而实现对原有BIOS的扩展或修正。 BIOS的修改过程一般包含以下步骤:首先,备份原始BIOS,这是在进行任何修改前的必要步骤,以便

19,618

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧