2011-07-13 3 views
0

UNIXのコマンドラインエミュレータでファイルパスをURIとして書きたいと思います。ファイルのディレクトリ(pwd)に基づいてfile:/// URIを作成するためのUnixコマンド

所望の出力:

file:///C|/directory/filename.ext 

私が近づくなく、かなりそこ

$ pwd 
/c/directory/ 

ので...私に小文字のドライブなしパイプを与えることができSEDとPWDを使用しました。

良い方法がありますか?

答えて

0

sedで行うことができます。ホールドスペースとパターンスペースを通過する必要があるため、多分複雑ですが、ケース変換を行うコマンドはyです。 Perlを使用する方が簡単です - これを行うためのモジュールは1つ以上あります(URIURI::fileなど)。ただし、正規表現で単純なバージョンを作成することもできます。

#!/usr/bin/env perl 
use strict; 
use warnings; 
foreach my $name (@ARGV) 
{ 
    if ($name =~ m%^/([a-zA-Z])(/.+)%) 
    { 
     printf "file:///%c|%s\n", uc($1), $2; 
    } 
    else 
    { 
     print STDERR "$0: unexpected name format - no /x/ drive letter prefix ($name)\n"; 
    } 
} 

(未テストコード)

関連する問題