Skocz do zawartości

Sed I Przekazanie Parametru


borzole

Rekomendowane odpowiedzi

Mam lamerskie pytanie.

Polecenie kopiuje strukturę katalogów z aktualnego miejsca do /home/lucas/project/test1

.bashrc

 alias drzewo-luzem="find . -type d -print|sed 's@^\.\{0,1\}@/home/lucas/project/test1@' | sed 's/ /\\ /' | xargs mkdir -p"

ale jest bałaganiarskie, bo kopiuje drzewo wszystkich folderów w tym miejscu, a ja chciałbym tylko wybranego, niestety nie wiem jak przekazać parametr :) próbowałem $PRNAME i w {} () '' "" no i nic, nie znam sed'a przeszedłem jakieś toturiale i nadal nie wiem. Help.

tyle mam:

.bashrc

drzewo-folder(){    
    cd $1
    PRNAME=/home/lucas/project/$1 
    find . -type d -print|sed 's@^\.\{0,1\}@$PRNAME@' | sed 's/ /\\ /' | xargs mkdir -p
    cd ..
}

na wyjściu dostaje strukturę katalogów ale zamiast ładnej nazwy to mam $PRNAME lub z '$PRNAME' itp.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, teraz działa.

Funkcja przydaje się raz do roku, ale brakowało mi tego parę razy. Może się komuś przyda

.bashrc

           drzewo-folder(){
               cd $1
               PRNAME=/home/lucas/project/$1 
               find . -type d -print|sed "s@^\.\{0,1\}@$PRNAME@" | sed 's/ /\\ /' | xargs mkdir -p
               cd ..
           }

np.: drzewo-folder ~/temp

zrobi kopie struktury katalogów z ~/temp do /home/lucas/project/temp

 

Zrobiłem też przeróbkę żeby było bardziej elastycznie:

drzewo-folder-elastyczny DrzewoDoSkopiowania MiejsceDocelowe NowaNazwa

np.: drzewo-folder-elastyczny ~/temp ~/project Astalavista

zrobi kopie struktury katalogów z ~/temp do /home/lucas/project/Astalavista

         drzewo-folder-elastyczny(){
             # drzewo-folder-elastyczny  DrzewoDoSkopiowania  MiejsceDocelowe  NowaNazwa
             START_DIR=$PWD
             cd $1
             PRNAME=$2/$3 
             find . -type d -print|sed "s@^\.\{0,1\}@$PRNAME@" | sed 's/ /\\ /' | xargs mkdir -p
             cd $START_DIR
         }

 

ps. żeby nie było, że coś sobie przywłaszczam: źródło sztuczki

Odnośnik do komentarza
Udostępnij na innych stronach

Imo takie coś też powinno działać:

        drzewo-folder-elastyczny(){
             # drzewo-folder-elastyczny  DrzewoDoSkopiowania  MiejsceDocelowe 
             find $1 -type d -printf "$2/%P\n" | xargs -i mkdir -p '{}'

         }

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...