LINUX.ORG.RU
ФорумAdmin

Скрипт на bash`е надыть .... помогите!!!


0

0

Господа!!!

Нужен скрипт на Bash`е который бы:
 есть куча файлов вида:   <имя><номер версии><номер_>.zip
  Надо:
    все эти файлы разархивировать и разложить по каталогам:
     $prefix/<номер версии>/
               и в этом каталоге все файлы но уже без архива (разорхивированные), которые удолетворяют:   <имя><номер_версии>*


Как такое на bash`е сделать??
  помогайте ...



P.S.   rm -f /   не предлагать ,, ;)
anonymous

Ответ на: комментарий от watashiwa_daredeska

sob1201.zip
sob1202.zip
1203.zip
1401.zip

Как видно, в начале буквы (а не цифры) могут просто отсутствовать ,,,, 
Вот надо это разложить понормальному ....

galchyonok ★★
()
Ответ на: комментарий от galchyonok

обязательно на баше?



#!/usr/bin/perl



$pwd = `pwd`;



while(<INPUT>){

  chomp;

  if(/^(.*\d\d)(\d\d\.zip)$/){

    if( ! -d $pwd.'/'.$1 ){ mkdir( $pwd.'/'.$1 ); }

    rename( $pwd.'/'.$_, $pwd.'/'.$1.'/'.$2 );

  }

}



запускать:

[shell]$ ls *.zip | ./script.pl



сначала проверить!

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

Однако ...... по последнему предлажению на bash`е ....

переменная $ver всегда получается пустой .... не подскажешь где ошибка?

Надо было именно на bash`е ....

galchyonok ★★
()
Ответ на: комментарий от anonymous

echo sob1201.zip | sed 's/^\(.*\)\([0-9]\{2\}\)\([0-9]\{2\}\)\.zip/\1 \2 \3/'
sob 12 01

echo sob1201.zip | sed 's/^\(.*\)\([0-9]\{2\}\)\([0-9]\{2\}\)\.zip/\1 \2 \3/'| cut -d\  -f2 -s
12


echo 1201.zip | sed 's/^\(.*\)\([0-9]\{2\}\)\([0-9]\{2\}\)\.zip/\1 \2 \3/'
 12 01

echo 1201.zip | sed 's/^\(.*\)\([0-9]\{2\}\)\([0-9]\{2\}\)\.zip/\1 \2 \3/'| cut -d\  -f2 -s
12

anonymous
()
Ответ на: комментарий от galchyonok

> не подскажешь где ошибка?

У тебя в именах файлов 4 цифры? Суффикс .zip или .ZIP, .Zip или ещё как? В общем, фикси регексп - в результате должна получиться строчка с двумя полями, разделёнными пробелом, второе поле - это и будет $ver.

watashiwa_daredeska ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.