LINUX.ORG.RU

^M


0

0

Как убрать в перле в строке последний символ(любой | ^M)

anonymous

chop() - удаляет любой последний символ.
chomp() - удаляет последний символ если он \n или \r, не уверен но может быть удаляет и сочетание \n\r

OxiD ★★★★
()
Ответ на: комментарий от McMCC

sed "s/$CRLF/$LF", CRLF соотственно "\r\n", а LF "\n"

anonymous
()

Вот, в каком-то учебнике по перлу видел..

#!/usr/bin/perl

unless(@ARGV){die "Usage: delcr file ...\n";}
foreach $file(@ARGV)
{
   if(! -r $file || ! -w $file)
   {
      print "$file: access denied\n";
   }
   else
   {
      open(F,"+<$file") || die "Cannot open $file $!\n";
      binmode(F) || die "Cannot binmode $file $!\n";
      @D=<F>;
      seek(F,0,0);
      foreach(@D)
      {
        s/\r//g;
        printf F;
      }
      truncate(F,tell(F));
      close(F);
   }
}

braindef
()
Ответ на: комментарий от braindef

Господи, в _каком_ учебнике учат "foreach $file (@ARGV)"???
Larry Wall в camel book показывает это как классический "плохой стиль". В стиле do-as-I-think это должно выглядеть "while (<>)"....

Это позволит
1) Убрать самодеятельность и сократить, а также повысить читабельность текста.
2) Работать с stdin (coolprog-which-generates-braindead-text | delcr > text)

Zulu ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.