Команда Unix для создания файла: /// URI на основе каталога файла (pwd) - PullRequest
0 голосов
/ 13 июля 2011

Я хотел бы написать путь к файлу как URI в эмуляторе командной строки Unix.

Желаемый вывод:

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

Используя sed и pwd, я могу приблизиться, но не совсем, потому что

$ pwd
/c/directory/

... дает мне строчный диск и никакой трубы.

Есть ли лучший способ?

1 Ответ

0 голосов
/ 13 июля 2011

Вы можете сделать это с помощью sed; у него есть команда y для преобразования регистра, хотя это несколько запутанно, потому что вам придется пройти через пространство удержания, а также пространство шаблона. Было бы проще использовать Perl - он, вероятно, имеет один или несколько модулей для этого (например, URI и URI :: 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";
     }
 }

(непроверенный код.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...