Вы можете сделать это с помощью 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";
}
}
(непроверенный код.)