Problema con bash

di il
15 risposte

Problema con bash

Ciao a tutti sono Luca e avrei bisogno di una mano per sviluppare uno script bash che faccia queste cose:

Lo script deve:
Leggere dal file la prima e l'ultima riga ed estrarre i valori dei valori.
Prendere i valori di questa riga e dargli in pasto al gnuplot che faccia il grafico.
il gnuplot piu o meno ho capito come si usa ma come faccio ad estrarre due stringhe da una linea per poi assegnarne il valore a due variabili diverse.
Grazie in anticipo.

15 Risposte

  • Re: Problema con bash

    Questa sezione forum e' del C non della bash. In attesa che il moderatore ti sposti, puoi farlo solo con il comando awk ed eventualmente i comandi head e tail
  • Re: Problema con bash

    Ma head e tail mi restiruiscono la prima e l'ultima riga come faccio a estrarne i due dati scritti.
    per capirci le mie righe sono composte da due numeri come faccio a mettere un numero in una variabile e l'altro nell'altra?
    Scusate per lo sbaglio di sezione.
  • Re: Problema con bash

    Devi usare awk eventualmente con head e tail.
    awk awk awk

    edit:
    valore=$(head -n1 foo.txt | awk '{ print $1}')
  • Re: Problema con bash

    Ok Grazie è che non sono ancora molto pratico coi bash.con questa line prendo la prima stringa della prima riga giusto?
  • Re: Problema con bash

    Si, dovrebbe esser corretta se non ho fatto errori.
    si puo' fare anche senza head/tail aggiungendo un po di codice alla awk.
  • Re: Problema con bash

    Ok grazie ora provo e ti dico.=)
  • Re: Problema con bash

    Un altra cosa come faccio a dirgli il file dove andare a pescare i dati e poi per prendere la seconda stringa della riga devo scrivere:
    valore=$(head -n2 | awk '{ print $2}')
    e per il fondo come faccio con tail?
    scusami è che non ci capsco molto sono i primi script=)
  • Re: Problema con bash

    Ho dimenticato il file.. riguarda il mio post precedente

    head -n1 preleva la prima riga
    tail - n1 preleva l'ultima riga

    print $1 stampa il primo campo , print $n stampa l'n-simo campo
  • Re: Problema con bash

    Un altra cosa come faccio ad usare l'andamento logaritmico di gnuplot?
  • Re: Problema con bash

    Non conosco gnuplot. Questa è la documentazione:
  • Re: Problema con bash

    Visto che ho intestazioni diverse per il file da indagare è giusto se faccio cosi?
    if [[ $# != 1 ]] ; then printf "\nError: protocol name missing\n\n" ; exit 1; fi
    /bin/rm -f ../data/$1_throughput.dat
    N1=$(head -n1 $1_throughput.dat | awk '{ print $1}')
    T(N1)=$(head -n1 $1_throughput.dat | awk '{ print $2}')
    N2=$(tail -n1 $1_throughput.dat | awk '{ print $1}')
    T(N2)=$(tail -n1 $1_throughput.dat | awk '{ print $2}')
    Se ho capito bene cosi facendo vado nel mio file e do a N1 il valore della prima stringa della prima riga a T(N1) il valore della seconda stringa della prima riga.
    a N2 il valore della prima stringa dell'ultima riga e ad T(N2) il valore della seconda stringa dell ultima riga
    giusto?
    Grazie
  • Re: Problema con bash

    
    T(N1)=...
    T(N2)=...
    
    Cos'è sta roba?
  • Re: Problema con bash

    MI serviva mettere in delle variabili con quei nomi i valori della mia stringa.
  • Re: Problema con bash

    Usa altri nomi
Devi accedere o registrarti per scrivere nel forum
15 risposte