Modification d'une chaine de caractere

Bonjour,
J'ai un fichier texte de taille 20Go
ce fichier continet des chaine de caracteres fausse : " à(l "
J'aimerai remplacer le " (" par un espace pour devenir " à l "
Avez vous une idée pour ca svp?

Merci

Cordialemnt

3 réponses

  1. Un fichier texte de 20Go ? o_O
    Va falloir trouver quelque chose d'efficace.
    0
    1. Modérateur
      Salut,

      Tu peux toujours essayer (bien sûr je te conseille de faire des tests, voir sauvegarder ton fichier d'origine)

      lami20j@debian-acer:~$ cat plop
      Bonjour,  
      J'ai un fichier texte de taille 20Go 
      ce fichier continet des chaine de caracteres fausse : "   à(l      " 
      à(l dsfdsfdsfdsf à(l
      lami20j@debian-acer:~$ perl -pi -e 's/(?<=à)\((?=l)/ /g' plop
      lami20j@debian-acer:~$ cat plop
      Bonjour,  
      J'ai un fichier texte de taille 20Go 
      ce fichier continet des chaine de caracteres fausse : "   à l      " 
      à l dsfdsfdsfdsf à l


      Le fichier sera lu une seule fois.
      Je pense qu'il te faudra de la mémoire. Si tu as besoin tu peux créer aussi des fichiers swap.

      Tu peux aussi couper ton fichier en plusieurs petits fichiers et ensuite faire le traitement.
      Ensuite tu peux les rassembler.

      0
      1. Contributeur
        Salut,

        sed -i.bak 's/(/ /g' fichier_20Go

        0
        1. Modérateur
          Salut,

          C'est vrai que mon exemple est basé sur à et l mais le tien est radicalement généralisé ;-)
          Peut êre qu'il ne veut pas supprimer toutes les parenthèses.
          D'où je reviens à la base et dire qu'il faut connaître le fichier d'origine ;-)

          En tous cas il va avoir un fichier de 20 Go et un autre de 20 Go - Nbr ( * 1 octet
          0
        2. Contributeur
          Salut,

          Ben comme on en sait pas plus, j'ai fait au plus court ;-))

          Et puis grâce à toi, y'a le choix maintenant ;-))
          0
        3. Modérateur
          Ben comme on en sait pas plus, j'ai fait au plus court ;-))

          On verra, peut être qu'il nous donnera plus de détails.
          Sinon, je suis aussi pour le plus court, par exemple quand quelqu'un d'autre fait à ma place ;-)))
          0