社区
系统维护与使用区
帖子详情
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程序。
...全文
722
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)
Linux与
shell
Linux 简介Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类
Unix
操作系统,是一个基于 POSIX 和
UNIX
的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的
UNIX
工具软件、应用
程序
和网络协议。它支持 32 位和 64 位硬件。Linux 继承了
Unix
以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 的发行版Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。Linux 应用领域今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。目前 Linux 不仅在家庭与企业
中
使用,并且在政府
中
也很受欢迎。巴西联邦政府由于支持 Linux 而世界闻名。有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。印度的 Kerala 联邦计划在向全联邦的高
中
推广使用 Linux。
中
华人民共和国为取得技术独立,在龙芯处理器
中
排他性地使用 Linux。在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。法国和德国同样开始逐步采用 Linux。Linux vs
Windows
目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是
Windows
。主要区别如下比较
Windows
Linux界面界面统一,外壳
程序
固定所有
Windows
程序
菜单几乎一致,快捷键也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从
UNIX
传承下来,基本命令和操作方法也几乎一致。驱动
程序
驱动
程序
丰富,版本更新频繁。默认安装
程序
里面一般包含有该版本发布时流行的硬件驱动
程序
,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的
Windows
下的驱动,也会比较头痛。由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动
程序
,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动
程序
问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在
Windows
下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。使用使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十
分
有利。图形界面使用简单,容易入门。文字界面,需要学习才能掌握。学习系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。软件每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。大部
分
软件都可以自由获取,同样功能的软件选择较少。
Shell
脚本
Shell
脚本(
shell
script),是一种为
shell
编写的脚本
程序
。业界所说的
shell
通常都是指
shell
脚本,但读者朋友要知道,
shell
和
shell
script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的
shell
编程 都是指
shell
脚本编程,不是指开发
shell
自身。
Shell
环境
Shell
编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的
Shell
种类众多,常见的有:Bourne
Shell
(/usr/bin/sh或/bin/sh)Bourne Again
Shell
(/bin/bash)C
Shell
(/usr/bin/csh)K
Shell
(/usr/bin/ksh)
Shell
for Root(/sbin/sh)……本教程关注的是 Bash,也就是 Bourne Again
Shell
,由于易用和免费,Bash 在日常工作
中
被广泛使用。同时,Bash 也是大多数Linux 系统默认的
Shell
。在一般情况下,人们并不区
分
Bourne
Shell
和 Bourne Again
Shell
,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。#! 告诉系统其后路径所指定的
程序
即是解释此脚本
文件
的
Shell
程序
。第一个
shell
脚本打开文本编辑器(可以使用 vi/vim 命令来创建
文件
),新建一个
文件
test.sh,扩展名为 sh(sh代表
shell
),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写
shell
脚本,扩展名就用 php 好了。输入一些代码,第一行一般是这样:实例#!/bin/bashecho Hello World !
【OS xv6】1 万字详解
shell
源码解析命令(内含wsl+vscode调试xv6教程 文档第一章助读)
本文提供用vsCode连接WSL使用GDB调试xv6教程,及用户源码调试教程,及xv6
中
文文档“Chapter 1 Operating system interfaces”详解,最后对xv6的
shell
与命令解析相关源码进行详细解析(流程图),可视化地展示各类...
C/C++笔试题(很多)
C
中
的malloc函数
分
配的内存空间即在堆上,C++
中
对应的是new操作符。
程序
在编译期对变量和函数
分
配内存都在栈上进行,且
程序
运行过程
中
函数调用时参数的传递也在栈上进行 3.
Windows
下的内存是如何管理的? ...
从C语言来理解
文件
系统
文章目录一、
文件
、
文件
系统二、C语言
文件
操作详解C语言
中
的
文件
是什么?
文件
流C语言fopen函数的用法,C语言打开
文件
详解fopen() 函数的返回值判断
文件
是否打开成功fopen() 函数的打开方式关闭
文件
实例演示文本
文件
...
c/c++笔试题
中
的malloc函数
分
配的内存空间即在堆上,C++
中
对应的是new操作符。
程序
在编译期对变量和函数
分
配内存都在栈上进行,且
程序
运行过程
中
函数调用时参数的传递也在栈上进行 3.
Windows
下的内存是如何管理的? ...
系统维护与使用区
19,612
社区成员
74,603
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章