PDA

Visualizza la versione completa : [script bash] for & grep aiutino


Wave
10-01-2005, 01:20
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


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


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:


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 :prrr: :argo:

grazie e ciao

P.S. non me ne intendo di script bash...siate magnanimi... :ciauz:

gianiaz
10-01-2005, 10:07
togli l'asterisco da grep.

:ciauz:

Wave
10-01-2005, 16:03
grazie della risp...sono appena tornato dall'uni..

hai ragione...che stupido...

grazie..se ci sono altri problemi mi faccio vivo... :ciauz:

Wave
17-01-2005, 13:53
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:


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


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

gianiaz
17-01-2005, 14:46
fa brutto farlo subito al primo ciclo?



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


:D :ciauz:

Wave
17-01-2005, 15:12
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..

gianiaz
17-01-2005, 19:48
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? :fagiano:

Wave
17-01-2005, 20:43
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

Wave
17-01-2005, 20:45
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...

Ilmalcom
17-01-2005, 20:47
E' uscito l'ebuild della 4.2.0 final

Loading