Copie de fichier avec dd

dim -  
lami20j Messages postés 21331 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.
A voir également:

11 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

c'est un fichier binaire ou texte?
0
dim
 
Bonjour,
fichier de type "texte"
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
dim
 
Bonjour,
exactement
0

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

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Ben, teste la commande pour voir.
Le fichier original sera sauvegardé avec l'extension .bak
0
dim
 
Avec cette commande le resultat est un fichier contenant une seule ligne et pas de bloc de 4000. !!
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
après la commande que t'affiche
wc -l fichier
?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
et dd avec conv=sync ?
0
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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