社区
系统维护与使用区
帖子详情
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程序。
...全文
843
21
打赏
收藏
100分讨论在unix上用的去掉windows文件中的换行符(0x0D)的shell或c程序!
问题描述:对于换行,window下用回车换行(0A0D)来表示,unix下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
无人船基于模型预测控制(MPC)对USV进行自主控制研究(Matlab代码实现)
内容概要:本文研究了基于模型预测控制(MPC)对无人水面艇(USV)进行自主控制的方法,并提供了Matlab代码实现。文
中
系统阐述了MPC在USV轨迹跟踪与自主导航
中
的应用,通过建立船舶动力学模型,结合约束优化算法求解未来控制序列,实现对期望路径的高精度跟踪。研究涵盖系统建模、预测模型构建、目标函数设计、约束条件处理等核心技术环节,充
分
展现了MPC在处理多变量、非线性及带约束控制问题方面的优势,显著提升了USV在复杂海洋环境下的自主航行能力与控制鲁棒性。; 适合人群:具备自动控制理论基础和Matlab编程能力,从事船舶自动化、智能控制、无人系统研究的研究生及科研人员。; 使用场景及目标:①实现无人船的高精度轨迹跟踪控制;②深入学习MPC在非线性系统
中
的建模与控制方法;③为水上机器人、自动驾驶船舶等自主系统提供先进算法参考与仿真验证平台; 阅读建议:建议结合Matlab代码与控制理论基础同步学习,重点关注状态空间建模、预测时域设置、权重矩阵调节及实时优化求解过程,通过修改参数和设计不同路径场景,深入理解MPC的控制性能与调参规律。
单片机控制8×8LED点阵屏显示图形
代码转载自:https://pan.quark.cn/s/2f3f5da2a0e1 LedView LED点阵屏显示,示例,短消息提示插件 演示
LaTeX算法宏包指南[代码]
本文详细介绍了在LaTeX
中
使用algorithm宏包编写伪代码的完整指南。主要内容包括常用包的选择(algorithm2e和algorithmicx + algpseudocode)、基本结构示例、注意事项以及实用小技巧。文章对比了两种主流宏包的特点:algorithm2e功能强大适合期刊论文,而algorithmicx更灵活适合会议模板。同时提供了包冲突解决、算法位置控制、行号标题规范、
中
英文混排、长算法
分
页等常见问题的解决方案,并
分
享了伪代码注释、多行输入输出等实用技巧。
Unity三种截屏方法Demo
源码下载地址: https://pan.quark.cn/s/1a406a41f620 在Unity引擎
中
,截屏是开发者经常需要进行的一项操作,可能是为了记录游戏的状态,调试,或者制作宣传素材。 本Demo将详细介绍Unity
中
的三种截屏方法,帮助你更好地理解和应用到实际项目
中
。 我们来看第一种截屏方法:使用Unity内置的`ScreenCapture.CaptureScreenshot()`函数。 这个方法非常简单易用,只需要一行代码就能实现屏幕截图。 例如:```csharpvoid TakeScreenshot() { string filePath = Application.dataPath + "/Screenshots/" + "screenshot" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".png"; ScreenCapture.CaptureScreenshot(filePath);}```在这段代码
中
,我们定义了一个截图保存的路径,并使用了当前日期时间作为
文件
名的一部
分
,以避免重复。 `CaptureScreenshot()`函数会将当前的屏幕画面保存为PNG图片
文件
。 第二种方法涉及到Unity的RenderTexture。 这种方法适用于需要对屏幕进行特殊处理后再截图的情况,比如添加后期效果、镜像或
分
屏显示等。 我们需要创建一个RenderTexture对象:```csharpRenderTexture rt = new RenderTexture(Screen.width, Screen.height, 24);Camera.main.targetTexture = rt;```然后,我...
ArcMap经纬度转换[项目源码]
本文详细介绍了在ArcMap
中
实现十进制度和度
分
秒相互转换的方法。对于十进制度转度
分
秒,需要新建文本型字段并使用Python表达式,通过定义dd2dms函数实现转换,其
中
需注意替换字段名称。对于度
分
秒转十进制度,则需新建双精度字段并使用VB脚本,通过Split函数处理度
分
秒数据,同样需要注意替换字段名称。两种转换方法都提供了完整的代码示例和关键参数说明,为地理信息数据处理提供了实用技术指导。
系统维护与使用区
19,614
社区成员
74,562
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章