Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 用于创建文件的Unix命令:///URI基于文件';s目录(pwd)_Linux_Git_Unix_Command Line_Cygwin - Fatal编程技术网

Linux 用于创建文件的Unix命令:///URI基于文件';s目录(pwd)

Linux 用于创建文件的Unix命令:///URI基于文件';s目录(pwd),linux,git,unix,command-line,cygwin,Linux,Git,Unix,Command Line,Cygwin,我想在Unix命令行仿真器中编写一个文件路径作为URI 期望输出: file:///C|/directory/filename.ext 使用sed和pwd,我可以接近但不太接近,因为 $ pwd /c/directory/ …给我一个较低的驱动,没有管道 有更好的方法吗?您可以使用sed;它有一个y命令来执行大小写转换,尽管它有点复杂,因为您需要通过保持空间和模式空间。使用Perl会更容易——它可能有一个或多个模块来实现这一点(如and),尽管可以使用正则表达式生成一个简单的版本 #!/us

我想在Unix命令行仿真器中编写一个文件路径作为URI

期望输出:

file:///C|/directory/filename.ext
使用sed和pwd,我可以接近但不太接近,因为

$ pwd
/c/directory/
…给我一个较低的驱动,没有管道


有更好的方法吗?

您可以使用
sed
;它有一个
y
命令来执行大小写转换,尽管它有点复杂,因为您需要通过保持空间和模式空间。使用Perl会更容易——它可能有一个或多个模块来实现这一点(如and),尽管可以使用正则表达式生成一个简单的版本

#!/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";
     }
 }
(未经测试的代码。)