Copie de fichier avec dd

Fermé
dim - 3 oct. 2007 à 10:34
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 4 oct. 2007 à 10:15
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 oct. 2007 à 10:40
Salut,

c'est un fichier binaire ou texte?
0
Bonjour,
fichier de type "texte"
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 oct. 2007 à 11:07
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
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 oct. 2007 à 11:11
Ben, teste la commande pour voir.
Le fichier original sera sauvegardé avec l'extension .bak
0
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 oct. 2007 à 11:35
après la commande que t'affiche
wc -l fichier
?
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
3 oct. 2007 à 12:21
et dd avec conv=sync ?
0
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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
4 oct. 2007 à 10:15
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 oct. 2007 à 10:15
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