Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644

    [script bash] for & grep aiutino

    vorrei fare uno scriptino che mi tolga tutti i file della versione beta di xfce che ho installato...

    utilizzo gentoo come distro...non ho mai fatto script bash e questo mi sembra un ottimo modo per iniziare a conoscerlo...:

    immagino abbia nisogno di un bel ciclo for

    ora, devo riuscire a scrivere un comando che mi guardi dentro tutte le cartelle di

    /usr/portage/xfce-base

    e per ognuna di queste dia iin pasto ad emerge -C l'ebuild marcato

    *-4.1.99.2.ebuild

    in modo da eliminare dal sistema tutti i file dei singoli pacchetti di xfce (per quanto riguarda xfce-extra ci penso dopo dato che i pacchetti installati si sono una parte e non tutti)

    con

    codice:
    for i in `ls /usr/portage/xfce-base/`; do ls /usr/portage/xfce-base/$i; done;
    riesco a vedere tutti file che stanno nelle sottocartelle di /usr/portage/xfce-base/

    ma se a questo comando aggiungo

    codice:
    for i in `ls /usr/portage/xfce-base/`; do ls /usr/portage/xfce-base/$i | grep *-4.1.99.2.ebuild ; done;
    non mi esce niente in output...come mai???
    dove sbaglio col grep??

    l'output del primo comando è una serie di righe di quaeto tipo:

    codice:
    totale 24
    -rw-r--r--  1 root root 5170 13 dic 21:40 ChangeLog
    drwxr-xr-x  2 root root  136 14 dic 23:40 files
    -rw-r--r--  1 root root  911  5 nov 00:07 libxfce4mcs-4.0.6.ebuild
    -rw-r--r--  1 root root  729 13 dic 21:29 libxfce4mcs-4.1.99.2.ebuild
    -rw-r--r--  1 root root  386 14 dic 23:40 Manifest
    -rw-r--r--  1 root root  157  4 nov  2003 metadata.xml
    una serie per ogni cartella/pacchetto visitata...

    suppongo che ogni volta risolto con grep basta far scorrere un iteratore con un ciclo for sul suo output e dare ogni iterata in parto a emerge -C giusto???

    mi sa che data la lunghezza del comando è meglio fare uno script su un file e renderlo eseguibile...


    ora vado a nanna che domani ho un esame

    grazie e ciao

    P.S. non me ne intendo di script bash...siate magnanimi...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    togli l'asterisco da grep.


  3. #3
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    grazie della risp...sono appena tornato dall'uni..

    hai ragione...che stupido...

    grazie..se ci sono altri problemi mi faccio vivo...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  4. #4
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    Potrei utilizzare l'output del ciclo for (corretto l'argomento di grep) e con un for passarlo ad emerge???

    mi spiego meglio:

    correggendo grep ho questo output in console:

    codice:
    libxfce4mcs-4.1.99.2.ebuild
    libxfce4util-4.1.99.2.ebuild
    libxfcegui4-4.1.99.2.ebuild
    xfce4-4.1.99.2.ebuild
    xfce4-base-4.1.99.2.ebuild
    xfce4-extras-4.1.99.2.ebuild
    xfce4-panel-4.1.99.2.ebuild
    xfce4-session-4.1.99.2.ebuild
    xfce-mcs-manager-4.1.99.2.ebuild
    xfce-mcs-plugins-4.1.99.2.ebuild
    xfce-utils-4.1.99.2.ebuild
    xfdesktop-4.1.99.2.ebuild
    xffm-4.1.99.2.ebuild
    xfprint-4.1.99.2.ebuild
    xfwm4-4.1.99.2.ebuild
    che sarebbero i pacchetti che devo togliere...

    non potrei passare questo ciclo for ad un altro cilco for e nel do fare emerge -C $i ???

    tipo

    codice:
    for a in `for i in `ls /usr/portage/xfce-base/`;do 
    	 ls /usr/portage/xfce-base/$i | grep 4.1.99.2.ebuild;done;`
    non so se mi sono spiegato...

    grazie..ciao
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    fa brutto farlo subito al primo ciclo?

    codice:
    for i in `ls /usr/portage/xfce-base/ | grep 4.1.99.2.ebuild`;
    [..]
    done;

  6. #6
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    nopn lo posso fare tutto al primo for in quanto dentro a xfce-base ci sta una cartella per ogni ebuild...
    quindi il comando da te suggerito

    ls /usr/portage/xfce-base/ | grep 4.1.99.2.ebuild

    non restituisce niente..
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    scusa ma non conoscendo l'architettura di gentoo ho un po' di problemi a capire...

    Comunque se è solo una sottodirectory basta che aggiungi -R al comando ls.

    No?

  8. #8
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    niente ...

    allora più o meno in gentoo la cartella /usr/portage è così definita:

    c è una cartella per ogni macrocategoria di programmi (per esempio xfce-base o xfce-extra e via dicendo) e ogni cartella di macrocategoria contiene una cartella per ogni applicazione con all'interno tutti i vari ebuild di ogni versione

    quindi per quanto riguarda xfce in /usr/portage/xfce-base ho tante cartelle per ogni applicazione di xfce (xfwm etc) con all'interno due file .ebuild uno per la versione rc2 e una per la versione stable....

    spero di essermi spiegato bene....ora provo con l'opzione -R..grazie
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  9. #9
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    con ls -R l output di

    ls -R /usr/portage/xfce-base/ | grep 4.1.99.2.ebuild

    è proprio quello che voglio vada in pasto a emerge...grazie...

    P.S. bisogna che me lo studi bene questo bash sripting...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  10. #10
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345
    E' uscito l'ebuild della 4.2.0 final

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.