c-shell
может стать здесь настоящим спасителем:
% foreach line ( "`cat./input.txt`" )
printf '%s\t%s\t' ${line:q} ${line:r:t:q}
printf '%smain\n' ${line:r:t:q}
end
Другими методами являются:
$ perl -F/ -pale '
my($t) = $F[-1] =~ /([^.]+)/;
$_ = join "\t", $_, $t, "${t}main" if /\S/;
'./input.txt
$ sed -Ee '
s|([^/.]+)\.[^/.]+$|&\t\1\t\1main|;t
s|([^.]+)\.[^.]+$|&\t\1\t\1main|;t
s|([^/]+)$|&\t\1\t\1main|
'./input.txt
Результаты:
/myhome/new1/myfiles/test2.sh test2 test2main
/myhome/new3/myfiles/test1.sh test1 test1main
/myhome/new2/myfiles/test4.sh test4 test4main
/myhome/new/myfiles/test5.sh test5 test5main
Примечания:
o We have to be verbose as we need to cover the various possible cases that may arise.
o GNU sed is needed.
Я решил проблему, запустив:
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
Сначала он подумал, что это не работает, потому что показал мне эту ошибку:
qemu-kvm: relocation error: /lib64/libspice-server.so.1: symbol SSL_CONF_CTX_set_ssl_ctx, version libssl.so.10 not defined in file libssl.so.10 with link time reference
Оказалось, что мне нужно обновить openssl, я запустил:
yum update openssl
И это сработало.