Copie de fichier avec dd

dim -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
je dois transformer un fichier qui actuellement ne comporte qu'une seule ligne parun fichier de block de 4000 avec un CR en fin de ligne. voici la commande que j'execute
dd if=file_in cbs=4000 conv=unblock obs=4000 of=file_out
le resultat me donne un fichier avec des lignes de 4000 sauf la ou les lignes contenaient - de 4000.
je dois obtenir d'un fichier avec des records a longueur variable un fichier avec des records a longueur fixe de 4000.

Merci pour le coup de main.
Configuration: Windows XP
Firefox 2.0.0.7

11 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    c'est un fichier binaire ou texte?
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Je ne suis pas sûr si j'ai bien compris.
    Tu veux divisier en plusieurs lignes de 4000 caractères avec un CR à la fin?
    C'est bien ça?
    perl -pi.bak -e 's/(.{4000})/$1\r\n/g' fichier

    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Ben, teste la commande pour voir.
    Le fichier original sera sauvegardé avec l'extension .bak
    0
  5. dim
     
    Avec cette commande le resultat est un fichier contenant une seule ligne et pas de bloc de 4000. !!
    0
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    après la commande que t'affiche
    wc -l fichier
    ?
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    et dd avec conv=sync ?
    0
  8. dim
     
    Bonjour,

    le resultat de wc-l est "0"

    la commande sync formate le fichier en 3570 records mais me donne des longueurs de records varaibles.

    Avez vous encore des idées ??

    Merci d'avance
    0
  9. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    et avec conv=block:
    block Treats the input as a sequence of newline or end-of-
    file terminated variable length records independent of
    input and output block boundaries.
    0
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu peux m'envoyer le fichier?
    ce n'est pas evident de donner une solution en vide
    j'ai testé ma commande sur un fichier qui contient une ligne de plus 120000 caractères
    0