The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Раскладывание файлов по каталогам, нужен совет., !*! 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, 18:52 , 30-Июл-03 (1)
    >Что неправильно в этой структуре, или  как можно это проще сделать?
    >
    >есть архивы типа 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, 19:18 , 30-Июл-03 (2)
      Собственно в чем проблема, у меня не работает конструкция
      ${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, 19:34 , 30-Июл-03 (3)
        >Собственно в чем проблема, у меня не работает конструкция
        >${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





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру