URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1932
[ Назад ]

Исходное сообщение
"Раскладывание файлов по каталогам, нужен совет."

Отправлено Sergey , 30-Июл-03 13:26 
Что неправильно в этой структуре, или  как можно это проще сделать?
есть архивы типа mac.date.0001.gz
Пытаюсь раскладывать их скриптом по каталогам соответствующим их mac адресам..
#/bin/sh
tmd=`date '+%Y%m%d'`
for f in *.gz
do
#echo $f|tr -s '.' ' '|awk  '/gz/ {print($1)}'
#Дает необходимый мне вывод
#mac1
#mac2
#...
#macn
#а так не работает!
mkdir $f|tr -s '.' ' '|awk  '/gz/ {print($1)}'|cp -Rf ${f} bck/$f|tr -s '.' ' '|awk  '/gz/ {print($1)}'/${f}
#===
done

Спасибо!


Содержание

Сообщения в этом обсуждении
"Раскладывание файлов по каталогам, нужен совет."
Отправлено konst , 30-Июл-03 18:52 
>Что неправильно в этой структуре, или  как можно это проще сделать?
>
>есть архивы типа mac.date.0001.gz
>Пытаюсь раскладывать их скриптом по каталогам соответствующим их mac адресам..
>#/bin/sh
>tmd=`date '+%Y%m%d'`
>for f in *.gz
>do
>#echo $f|tr -s '.' ' '|awk  '/gz/ {print($1)}'
>#Дает необходимый мне вывод
>#mac1
>#mac2
>#...
>#macn
>#а так не работает!
>mkdir $f|tr -s '.' ' '|awk  '/gz/ {print($1)}'|cp -Rf ${f} bck/$f|tr
>-s '.' ' '|awk  '/gz/ {print($1)}'/${f}
>#===
>done
>
>Спасибо!
mkdir `(это обратная кавычка) $f|tr -s '.' ' '|awk  '/gz/ {print($1)}'|cp -Rf ${f} bck/$f|tr -s '.' ' '|awk  '/gz/ {print($1)}'/${f} `(это обратная кавычка)


"Раскладывание файлов по каталогам, нужен совет."
Отправлено Sergey , 30-Июл-03 19:18 
Собственно в чем проблема, у меня не работает конструкция
${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}' для cp и mkdir
она из файла 123456.300701.0001.gz
должна выташить 1 часть 123456 создать каталог вроде как
mkdir 123456
но в итоге создаеться
123456.300701.0001.gz
хотя
echo ${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}'
выдает
123456

Может так не работает, и есть иной способ?


#/bin/sh
tmd=`date '+%Y%m%d'`
for f in *.gz
do
   mkdir -p  bck/$tmd/${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}'\
   |cp -Rf ${f} bck/$tmd/${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}'
done


"Раскладывание файлов по каталогам, нужен совет."
Отправлено konst , 30-Июл-03 19:34 
>Собственно в чем проблема, у меня не работает конструкция
>${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}' для cp и mkdir
>
>она из файла 123456.300701.0001.gz
>должна выташить 1 часть 123456 создать каталог вроде как
>mkdir 123456
>но в итоге создаеться
>123456.300701.0001.gz
>хотя
>echo ${f}|tr -s '.' ' '|awk  '/gz/ {print($1)}'
>выдает
>123456
>
>Может так не работает, и есть иной способ?
>
>
>#/bin/sh
>tmd=`date '+%Y%m%d'`
>for f in *.gz
>do
>   mkdir -p  bck/$tmd/${f}|tr -s '.' ' '|awk  
>'/gz/ {print($1)}'\
>   |cp -Rf ${f} bck/$tmd/${f}|tr -s '.' ' '|awk  
>'/gz/ {print($1)}'
>done
Я awk не пользуюсь, но с Perl это может выглядеть так
ls -l
-rw-r--r--  1 root  kvk    0 30 июл 19:32  123.456.a
-rw-r--r--  1 root  kvk    0 30 июл 19:33  124.456.b
-rw-r--r--  1 root  kvk    0 30 июл 19:33  125.456.c

for i in 1*;
do a=`echo $i | perl -ne '/^(\d+)/;print $1;'`;
echo "a=$a";
mkdir $a;
done

rezult - OK