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

    [C o BASH] Manipolazione stringhe in files

    Salve, ho i seguenti file con stesso numero di righe:
    file1
    a b c f d 1 2 3 5 4 6 8 s d
    f s l k 5 4 8 sa
    d f s 5 4 a dd e f ge w s f g h
    .
    .
    .
    file2
    1
    2
    3
    .
    .
    .
    E voglio sostituire per ogni riga di file1 il suo secondo carattere con il carattere della riga corrispondente di file2, ottenendo:
    file3
    a 1 c f d 1 2 3 5 4 6 8 s d
    f 2 l k 5 4 8 sa
    d 3 s 5 4 a dd e f ge w s f g h
    .
    .
    .
    Ora non so se mi conviene scrivere uno script in bash (o perl) o un sorgente in C...
    Nel primo caso stavo pensando a qualcosa del genere:
    codice:
    #!/bin/bash
    paste -d '  ' file1 fille 2> file3
    while read line
    do
        primo=$(echo "$line" | cut -d' ' -f1)
        terzo=$(echo "$line" | cut -d' ' dal terzo al penultimo carattere...)
        secondo=$(echo "$line" | cut -d' ' ultimo carattere)
        echo "$primo $secondo $terzo" >> fileout
    done < file3
    In C invece lo pseudo-codice dovrebbe essere:
    codice:
    apri il file1
    apri il file2
    while (1)
    	{       
    		res1=fgets(bufa, 200000, file1);
    		if( res1==NULL )
          		break;
          		metti in a il bufa[0]
                    metti in b da bufa[2] fino a fine bufa
          		
          		res2=fgets(bufb, 200000, file2);
    		if( res2==NULL )
          		break;
                    metti in c il bufb[0]
            	fprintf( fdout ,"%s%s%s\n", a, c,b);
    	}
    Qualche dritta? :master:

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Una dritta per scegliere il linguaggio ... o cosa ?

  3. #3
    No, qualche dritta per risolvere il problema...
    Mi serve qualche passaggio per tradurre lo pseudo-codice, in codice corretto...
    :master:

  4. #4
    Ho risolto in bash!
    Ma in C, per curiosità, come potrei fare?

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.