собрать однострочники perl из короткого сценария perl и объединить их с другой строкой - PullRequest
0 голосов
/ 21 января 2011

Продолжите мой предыдущий вопрос (но другой вопрос),

В соответствии со следующим сценарием perl (rename.pl)

, как построить строку с одним строком perl из сценария rename.plчтобы заменить: /var/tmp/rename.pl (из команды find ...) на однострочный синтаксис perl?

(я не хочу использовать скрипт rename.pl,)

   find  /  -name "$OLD_HOST"  -print0 | xargs -0 /var/tmp/rename.pl 'print "changing $_\n"; s/$OLD_HOST/host_10/g'

сценарий переименования.pl:

  #!/usr/bin/perl

   $op = shift;
     for (@ARGV) {
      $was = $_;
      eval $op;
      die $@ if $@;
      rename($was,$_) unless $was eq $_;
    }

Ответы [ 2 ]

0 голосов
/ 23 января 2011

Этот однострочник найдет zip-файлы с номерами внутри имени файла и напечатает некоторые команды оболочки "mv", а не выполнит их немедленно.Вы можете вставить это в командную строку для большего контроля позже.Может быть, это поможет вам начать.

найти.имя "* .zip" |perl -nE 'chomp;мой $ f = qq ($ _);$ f = ~ / (\ d +) /;сказать "мв $ ф".sprintf ("% 03d", $ 1).".zip"; '

0 голосов
/ 21 января 2011

Почему бы не использовать проверенный, отлаженный скрипт rename.pl?

find ... |
xargs -0 perl -e 'my $op - shift; foreach (@ARGV)
                  { my $was = $_; eval $op; die $@ if $@;
                    rename($was, $_) unless $was eq $_; }' \
              s/x/y/g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...