Globbing и регулярное выражение в сценарии bash - PullRequest
1 голос
/ 21 мая 2011

У меня проблема с моим регулярным выражением:

Мой скрипт написан на Perl.

#!/usr/bin/perl

# Inverse les colonnes 1 et 2
while(<>){
    my @cols  = split (/\|/);
    print "$cols[-3]/$cols[-4]\n";
}

exit;

Я создаю псевдоним с помощью команды:

alias inverseur="perl /laboratoire10/inverseur_colonnes.pl

Я надеюсь выполнить следующее:

Написать сценарий "bash", который создает файлконтейнер для каждого заголовка фильма (.avi) в файле.

Исходный файл: http://www.genxvideo.com/genxinventory-current.xls, но с тех пор я переименовал его в liste_films.csv.

Все кавычки, пробелы, тире и другие странные символы должны быть заменены подчеркиванием "_".

Группа станет именем каталога, а название фильма будет следовать за суффиксом имени файла (.avi).Чтобы сделать это, код должен обработать поля «заголовок» и «класс» в обратном порядке.Вы можете изменить поля "title" и "class" с помощью псевдонима "inverter", созданного ранее.

Сценарий, очевидно, создаст каждый каталог в "/ laboratoire10" перед созданием файлов .avi.Всего должно быть 253 действительных каталога.Каталоги создаются через "|"с помощью команды "xargs mkdir-pv /."

Мне нужна помощь в расширении моего текущего кода с помощью команды для поиска файлов .avi, имя которых содержит строку min / maj" wood

1 Ответ

2 голосов
/ 21 мая 2011

Очень трудно понять, что именно вы пытаетесь сделать. В предположении, что у вас есть | разделенный CSV и желающий иметь дерево каталогов с CATEGORY / TITLE и файл с именем "cans.avi" в каждом каталоге с таким именем, здесь есть сценарий perl с одним вкладышем.

perl -mText::CSV -e '$csv = Text::CSV->new({ sep_char=>"|",binary=>1,auto_diag => 1 } ) || die; open my $fh, "<", $ARGV[0] or die; while (my $row = $csv->getline($fh)) { $file = cleaner($row->[1])."/".cleaner($row->[0]); print "mkdir $file; touch $file/cans.avi\n"; } sub cleaner($) { my($f) = @_; $f =~ s/\W/_/g; $f;}'  ~/tmp/genxinventory-current.csv 

Я преобразовал файл XLS в | разделить CSV с помощью libreoffice, поэтому ваш конверсионный пробег (километр?) может отличаться.

...