如何chomp掉文本中的换行“0A”和回车“0D”?

niudou 2006-12-26 06:05:41
发现用chomp命令没有作用,在16进制下打开文本,还是在每行后面显示0a0d。有什么好办法吗?

谢谢了!
...全文
261 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2006-12-28
  • 打赏
  • 举报
回复

use strict;

my $inputfile = "ipath";
my $outputfile = "opath";

open(IN, "$inputfile") or die "open error: $!";
open(OUT, ">$outputfile") or die "open error: $!";

while (<IN>) {
chomp;
print OUT;
}

你自己改路径名,然后试下还有没有问题。
niudou 2006-12-28
  • 打赏
  • 举报
回复
呵呵,可行!把0d0d0a都砍掉了!谢谢啦!给分!
xyzxyz1111 2006-12-28
  • 打赏
  • 举报
回复

while(<>) {
s/[\r\n]+$//;
# ... do somthing
}
这样可行否?
niudou 2006-12-28
  • 打赏
  • 举报
回复
谢谢iambic!实在不好意思,这个问题的情况我一直没有表述清楚。我再说一下,这个input的文本格式比较奇怪,每行都是以“回车回车换行”,即0d0d0a作为结束。用了chomp之后,只能砍掉0d0a,还是有个0d保留着,我就是想问问,怎么样才能将这个“0d”也砍掉。
niudou 2006-12-27
  • 打赏
  • 举报
回复
open的文本本身,每行$line都有0d0a,用了chomp,0d0a还在,去不掉。这就是现在的问题。
iambic 2006-12-27
  • 打赏
  • 举报
回复
贴全部代码。你是不是又重新写了换行符进去?
niudou 2006-12-26
  • 打赏
  • 举报
回复
我是直接chomp $line;然后再输出到一个文本中,用UltraEdit16进制查看,这个$line本身以回车换行结束,即0d0a,chomp之后,还是0d0a。不知道怎样才能将这两个asc码砍掉。
iambic 2006-12-26
  • 打赏
  • 举报
回复
你是怎么用的?

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

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