Chinaunix

标题: 简化\ [打印本页]

作者: TrishaTie    时间: 2014-03-25 16:06
标题: 简化\
while(<INF>)
{
    chomp;
    (my $news=$_)=~s/\\\\FBL\\RFS/\\\\fbl\\cns\\VILFBLHPCCOM167\\IPE155848\\v4t58992.40hr.winphone\\SMD/i;
    (my $new1=$news)=~s/^(.+)\\(.+?)$/$1/;
    print OUF "\\\\fbl\\NAS\\WINPHO\\MangoSMD\\ENG\\v-xiwe\\R4\\TOOL\\exe\\filters\\MSSRAudioApp.exe -decode  $_  $news -audio\n";
}

代码如上,如果我希望用\ 而不是\\ 的话,该怎么办呢?谢谢
作者: q1208c    时间: 2014-03-25 16:12
换到 Linux上
作者: TrishaTie    时间: 2014-03-25 16:14
呃,环境仅限windows~ 哈哈
回复 2# q1208c


   
作者: q1208c    时间: 2014-03-25 16:16
回复 3# TrishaTie


      唉, 那就坑爹了.
作者: pitonas    时间: 2014-03-25 17:00
本帖最后由 pitonas 于 2014-03-26 07:51 编辑


我震惊了。{:2_170:}


作者: jason680    时间: 2014-03-25 17:18
回复 1# TrishaTie

How about this way

my $sMSSR = "//fbl/NAS/WINPHO/MangoSMD/ENG/v-xiwe/R4/TOOL/exe/filters/MSSRAudioApp.exe -decode";   
my $sSMD  = "//fbl/cns/VILFBLHPCCOM167/IPE155848/v4t58992.40hr.winphone/SMD";

while(<DATA>)
{
    chomp;
    s!\\!/!g;                       # change to '/'
    (my $news = $_   ) =~ s!//FBL//RFS!$sSMD!i;
    (my $new1 = $news) =~ s!^(.+)/(.+?)$!$1!;
    my $sCmd = "$sMSSR $_ $news -audio\n";
    $sCmd =~ s!/!\\!g;       # reverse to '\'
    #print OUF "$sCmd";
    print "$sCmd";
}
__DATA__
abc\\xyz\\FBL\\RFS
   
作者: TrishaTie    时间: 2014-03-25 17:26
回复 6# jason680
Emm, thanks for the answer, but I think according your way, the script become a little more complex.


   
作者: jason680    时间: 2014-03-25 17:31
本帖最后由 jason680 于 2014-03-25 17:49 编辑

回复 7# TrishaTie

that's ok.

it's up to you just an idea ...


BTW, it will be simple and easy to know what you want
    (my $news = $_   ) =~ s! //FBL//RFS !$sSMD!ix;
    #(my $new1 = $news) =~ s!^(.+)/(.+?)$!$1!;
     (my $new1 = $news) =~ s! [^/]+$ !!x;
    my $sCmd = "$sMSSR $_ $news -audio\n";




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2