Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    Recupero stringhe

    Buongiorno ragazzi,

    avrei bisogno del vostro aiuto.

    Io dovrei creare un piccolo script perl che riesca a confrontare due array e che quando trova la parola contenuta nel primo array nel secondo sia in grado di copiarmi l'intera stringa nel secondo.

    Esempio:

    inFile1:
    1 3 4 5 6 mare lago
    1 3 4 23 7 casa montagna
    3 6 78 3 2 lago montagna

    inFile2:
    mare
    23

    Outfile:
    1 3 4 5 6 mare lago
    1 3 4 23 7 casa montagna


    Non riesco a capire come posso fare poichè mi cambia in continuazione la $_ dell'infile2 da cercare nell'infile1.
    Iserisco la parte iniziale del codice...

    #!/usr/bin/perl
    my $argc = $#ARGV + 1;
    if ($argc < 3)
    {
    print "usage: pickSeq.pl infile1.lst infile2.csv outfile1.csv";
    print "\n\n";

    exit 1
    }

    my $inFile1 = $ARGV[0];
    my $inFile2 = $ARGV[1];
    my $outFile1 = $ARGV[2];

    open(INP1, "<$inFile1") || die "could not open ";
    open(INP2, "<$inFile2") || die "could not open ";
    open(OUT1, ">$outFile1") || die "could not open ";

    @a = <INP1>;
    close (INP1);

    $b = <INP2>;

    foreach $a ( @a ) {
    $a =~ $b

    Come andare avanti??Grazie!!!!!

  2. #2
    Lo script che funziona specificando al suo interno quello che devo cercare l'ho fatto ed è:
    #!/usr/bin/perl
    my $argc = $#ARGV + 1;
    if ($argc < 2)
    {
    print "usage: sideroforinome.pl infile1.csv outfile1.csv";
    print "\n\n";

    exit 1
    }

    my $inFile1 = $ARGV[0];
    my $outFile1 = $ARGV[1];

    open(INP1, "<$inFile1") || die "could not open ";
    open(OUT1, ">$outFile1") || die "could not open ";

    @a = <INP1>;
    close (INP1);


    foreach $a ( @a ) { if ($a =~ /tonB/i) {
    print OUT1 "$a";
    }
    }

    close (OUT1);


    Ma ho provato utilizzando questa come base inserendo una lista esterna ma non mi funziona. Mi crea un file vuoto.

    Grazie

  3. #3
    Ehiiii nessuno può aiutarmi?!!

  4. #4
    Perdonami, non capisco una cosa:
    tu vorresti avviare il programma passando un argomento, quell' argomento dev' essere ricercato in un array, e se viene riscontrato, dev' essere copiato in un secondo array?
    ho capito bene?

  5. #5
    Prima di tutto grazie per l'interessamento..
    Credo che con un esempio riusciamo a capirci meglio.

    il mio problema è questo:

    ho due files...nel primo ho delle stringhe:
    matteo luca 2323 giovanni
    simone ugo 443 alfonso
    simone luca 111 giovanni

    nel secondo ho:
    "matteo 11"
    "ugo 12"

    Vorrei creare uno script che mi dia in output il seguente risultato:
    "matteo 11" matteo luca 2323 giovanni
    "ugo 12" simone ugo 443 alfonso
    simone luca 111 giovanni NON TROVATO.

    Spero di essere stato chiaro.

    Grazie

  6. #6
    Provato il modulo Perl::Compare?

    Scusami Array::Compare (ho editato)

  7. #7
    No, perchè non sono capace ad usarlo

  8. #8
    Senza dei moduli specifici, credo che tu debba scrivere un' inifinità di codice, per ottenere lo stesso risultato.

  9. #9
    Ho scaricato il modulo e sto tentando di utlizzarlo.

    Ma come fare ad ottenere quello che mi serve? Ho provato ad utilizzare sia Array::compare che List::Compare ma posso solamente fare i confronti e vedere se gli elementi di un array sono in un altro array con le varie combinazioni.

    Grazie

  10. #10
    Cioè mi spiego meglio io devo confrontare questi due array ma devo, credo, considerarli come delle stringhe separate per il confronto; nel file1 ho le parole da cercare più un numero mentre in file2 ho la lista da analizzare. Però io devo cercare la presenza delle singole parole del file1 all'interno delle singole righe del file2. Righe che però possono contenere anche altre parole. Quando trovo una delle parole del file1 in una riga del file2 devo crostruire una riga di output con la parola trovata con il numero a lui associato concatenato alla riga del file 2.
    Spero di essermi spiegato.
    Grazie

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.