Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Aiuto Script Bash

  1. #1

    Aiuto Script Bash

    Salve a tutti...

    ho un file con questo contenuto

    codice:
    23f687493ecbcd6bbfc27be51f602073  ./dollarochioccola.sh
    23f687493ecbcd6bbfc27be51f602073  ./link2
    5a193e478756b5645943f2fc4b09c8c3  ./copia2.sh
    5a193e478756b5645943f2fc4b09c8c3  ./copia.sh
    5a193e478756b5645943f2fc4b09c8c3  ./link
    5a193e478756b5645943f2fc4b09c8c3  ./positionalparameters.sh
    Ora, il problema è che voglio avere i files con lo stesso md5 (la prima colonna) sulla stessa riga, qualcosa del tipo

    codice:
    23f687493ecbcd6bbfc27be51f602073  ./dollarochioccola.sh ./link2
    5a193e478756b5645943f2fc4b09c8c3  ./copia2.sh ./copia.sh ./link  ./positionalparameters.sh
    Come posso fare ?

    Ciao e grazie

    Alex

  2. #2
    Ciao, questo dovrebbe fare al caso tuo

    codice:
    #!/bin/bash
    
    FILENAME="$1"
    TMD5="/tmp/$USER.$(uuidgen).tmp"
    
    [ -z $FILENAME ] && echo "usage: ${0##/*} [FILENAME]" && exit 1
    cat $FILENAME | awk '{print $1}' | sort | uniq > $TMD5
    
    for i in $(cat $TMD5); do
          str="$i\t"
          REF=$(cat $FILENAME | grep $i | awk '{print $2}' | sort | uniq)
          for x in $REF; do
                str="$str""$x "
          done
          echo -e $str
          str=""
    done
    
    rm -f $TMD
    Si istanzia con il file originale come argomento e stampa il risultato in STDOUT.

    ./script file.txt > destino.txt

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  3. #3
    grazie mille... sei stato gentilissimo.

    In realtà avevo pensato a una soluzione molto simile ma ne cercavo una (se esiste) che mi permettesse di risparmiare righe di script utilizzando il comando 'join', che da quanto ho capito lavorava con lo stesso principio dei DB relazionali (infatti l'MD5 doveva servire da chiave primaria)

    Leggendo il man di Join ho capito che la questa soluzione non fa al caso mio (aspetto smentite)


    Ciao e grazie!

    Alex

  4. #4
    Puoi ovviamente usare join con lo stesso file di input

    join tuofile tuofile

    ma il risultato e' pessimo, meglio le 15 righe di script postate.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

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.