2010-12-22 130 views

回答

4

這是正則表達式

s/\//\\/g 
+0

這不適合我,但Jonathan Leffler的版本使用{和}作爲分隔符。 – 2014-03-12 15:31:17

+1

@WarrenP,效果很好: `$ echo「C:/ My Document/Photo.gif」| sed's/\ // \\/g'`生成 `C:\ My Document \ Photo.gif` – zhekaus 2017-12-12 06:34:02

1

只是\取代/。儘管我必須指出,你可以在Windows中使用正斜槓。

+0

你是說像找到&更換? :) – nebulus 2010-12-22 01:06:11

2

首先,你通常不需要做映射,除非你打算通過cmd.exe調用的東西; Windows API完全滿意於斜槓而不是文件名中的反斜槓(但cmd.exe堅稱斜線啓動了一個選項)。

然後,直接回答你的問題也許是:

my $file = "C:/My Documents/Photo.gif"; 
$file =~ s{/}{\\}g; 
print "$file\n"; 
-1

有點多餘,但你可以使用TR,而不是一個正則表達式:

tr!\\!/!; 
8
#!/usr/bin/perl 

use strict; use warnings; 
use File::Spec::Win32; 

print File::Spec::Win32->canonpath('C:/My Document/Photo.gif'), "\n"; 
相關問題