Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    sed: puo' funzionare questa regexp?

    Quando installo dei sw nuovi, mi tengo da parte il log di emerge che informa sui pacchetti che saranno installati, aggiornati, ecc. Capita a volte di volerli disinstallare, ma quando i pacchetti da togliere sono tanti il copia incolla diventa fastidioso... per questo pensavo di fare uno script che preso il log, estrapoli tutti i nomi dei pacchetti da dare in pasto ad emerge.
    Il log ha pressochè questa forma:

    codice:
    [Calculating dependencies ... done!
    [ebuild  N    ] media-libs/openal-0.0.8-r1  USE="alsa mp3 sdl vorbis -arts -debug -esd" 850 kB 
    [ebuild  N    ] media-libs/freealut-1.0.1  444 kB 
    [ebuild  N    ] dev-util/scons-0.96.1  276 kB 
    [ebuild  N    ] media-gfx/yafray-0.0.8  297 kB 
    [ebuild  N    ] media-libs/ftgl-2.1.2-r1  555 kB 
    [ebuild  N    ] media-gfx/blender-2.41-r1  USE="nls" 9,242 kB 
    
    Total size of downloads: 11,667 kB
    a parte il facile grep in pipe con awk per ripulire di tutte le righe inutili tenendo solo la 4a colonna con il nome, ho bisogno di rimuovere la parte che indica la versione: se ho media-libs/openal-0.0.8-r1 devo ottenere media-libs/openal.
    Per farlo avevo pensato ad una regexp come quella che segue, e sembra funzionare per quelle prove che ho fatto al momento, ma non essendo particolarmente esperto nel campo ve la sottopongo per avere anche la vostra opinione.
    Il formato dei nomi dei pacchetti è sempre lo stesso: categoria/pacchetto-Versione-revisione con l'ultima parte -revisione opzionale).

    codice:
    regex='s/\-\(\([0-9]\+\).\)\+\(\-r\([0-9]\)\+\)\{0,1\}$//g'
    #echo "media-libs/giblib-1.2.1-r2" | sed -e $regex

    [ot]già che ci sono, volevo sapere se mi consigliate di studiacchiare un po' per bene lo scripting di sed o quello di awk... ora come ora non li conosco granchè, e vorrei approfondire quello che secondo voi è più potente[/ot]
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  2. #2
    hum no non funziona... ho corretto così:
    codice:
    -\([0-9]\+.\{0,1\}\)\+\(\-r[0-9]\+\)\{0,1\}$
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

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 © 2024 vBulletin Solutions, Inc. All rights reserved.