尝试下面来完成,包含50000 CHOWN文件中的命令sed将语法包括双引号到最后一个字段
chown eme:curs "GCPB/control_Update_v1 (2).p"
最后一个字段没有""
文件中,我需要的是确保命令正确完成。
任何想法请如何做到这一点?
尝试下面来完成,包含50000 CHOWN文件中的命令sed将语法包括双引号到最后一个字段
chown eme:curs "GCPB/control_Update_v1 (2).p"
最后一个字段没有""
文件中,我需要的是确保命令正确完成。
任何想法请如何做到这一点?
我会猜测你正在谈论的是在其中有空格的文件上做一堆命令,因此需要引用。
像这样的事情会做到这一点:
#!/usr/bin/env perl
use strict;
use warnings;
#<> reads stdin or files specified on command line, like sed/grep
while (my $line = <>) {
#remove trailing linefeed
chomp ($line);
#split on whitespace - 3 fields limit.
my @fields = split (' ', $line, 3);
#stick them back together again, including quotes.
print join (" ", @fields[0,1], '"'.$fields[2].'"'),"\n";
}
:
chown eme:curs GCPB/control_Update_v1 (2).p
chown eme:curs some-other file
这给我们:
chown eme:curs "GCPB/control_Update_v1 (2).p"
chown eme:curs "some-other file"
,可进行一linerified如果你真的想虽然。
喜欢的东西:
perl -lne '@f=split(' ', $_, 3); print join (" ", @f[0,1], "\"".$f[2]."\"")'
不知道你的意思'最后一个字段不有“”是什么文件'。你能澄清吗? – fedorqui
你有一个文件,上面写着'chown'' user:group''文件名,但是文件名可能包含空格/ etc。但没有适当的引用?你想要引用文件名?无论文件名是什么? –
@Etan,是的,那就是我想要做的。 – jake