Awk: longueur de record
Fermé
dim
-
5 oct. 2007 à 11:32
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 5 oct. 2007 à 12:52
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 5 oct. 2007 à 12:52
A voir également:
- Awk: longueur de record
- DNS_PROBE_FINISHED_NXDOMAIN : dnsapi.dll (Win32:Patched-AWK) ✓ - Forum Virus
- Fonctionnement de foreach et awk et set ✓ - Forum Shell
- Commande bash awk, comment mettre en variables. ✓ - Forum Linux / Unix
- Supprimer des lignes avec awk ou sed ✓ - Forum Shell
- Commande équivalent à Sed, awk, tail,head en powershell ! - Forum Shell
12 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
5 oct. 2007 à 11:37
5 oct. 2007 à 11:37
Salut,
si la commande que je t'ai donné avec perl ça ne marche pas alors je n'ai pas compris la question
si seulement le résultat compte et pas la méthode et le fichier n'est pas confidentiel, je te propose de mettre le fichier sur cjoint.com
si la commande que je t'ai donné avec perl ça ne marche pas alors je n'ai pas compris la question
si seulement le résultat compte et pas la méthode et le fichier n'est pas confidentiel, je te propose de mettre le fichier sur cjoint.com
Salut Lami20j,
Le prob est que ce sont des données financieres, et donc a caractere privé.
Ne pourrais tu pas m'aider avec awk ? length ?
Merci d'avance
Le prob est que ce sont des données financieres, et donc a caractere privé.
Ne pourrais tu pas m'aider avec awk ? length ?
Merci d'avance
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
5 oct. 2007 à 12:24
5 oct. 2007 à 12:24
awk je ne connais pas
essaie
lami20j
essaie
cat fichier| perl -ne 'print join "\n",unpack("A4000" x (length($_)/4000), $_)' > resultat--
lami20j
je viens d'executer,
il separe bien les records "idem dd"
mais complete pas les records pour en faire des lignes de 4000 blocs.
As tu une autre idée awk ou sed ?
il separe bien les records "idem dd"
mais complete pas les records pour en faire des lignes de 4000 blocs.
As tu une autre idée awk ou sed ?
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
5 oct. 2007 à 12:29
5 oct. 2007 à 12:29
mais complete pas les records pour en faire des lignes de 4000 blocs.
alors j'avoue que je ne comprends pas ta question
Je te propose de créer un fichier avec des lignes de 7caractères et de le transformer en 3 blocs pour voir ce que tu cherches
alors j'avoue que je ne comprends pas ta question
Je te propose de créer un fichier avec des lignes de 7caractères et de le transformer en 3 blocs pour voir ce que tu cherches
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
5 oct. 2007 à 12:33
5 oct. 2007 à 12:33
c'est quoi une ligne de 4000 blocs ?
peut-être que : awk '{printf("%4000s\n", $0)}'
peut-être que : awk '{printf("%4000s\n", $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
5 oct. 2007 à 12:35
5 oct. 2007 à 12:35
moi j'ai compris qu'il faut mettre un \n après chaque 4000 caractère
alors c'est ça que fait les commandes que j'ai donné
et je pense que la tienne aussi
alors c'est ça que fait les commandes que j'ai donné
et je pense que la tienne aussi
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
5 oct. 2007 à 12:37
5 oct. 2007 à 12:37
ou alors 4000 en tout : awk '{printf("%3999s\n", $0)}'
Ouf j'ai trouvé et grace a toi
voici la commande qui realise la transformation correcte:
dd if=file_in cbs=4000 conv=unblock | awk '{printf("%4000s\n", $0)}' > file_out
oui je sais un dd pipé avec un awk c'est pas trop propre mais ca marche ;-)
Mille merci
voici la commande qui realise la transformation correcte:
dd if=file_in cbs=4000 conv=unblock | awk '{printf("%4000s\n", $0)}' > file_out
oui je sais un dd pipé avec un awk c'est pas trop propre mais ca marche ;-)
Mille merci
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
5 oct. 2007 à 12:46
5 oct. 2007 à 12:46
moi j'ai compris qu'il faut mettre un \n après chaque 4000 caractère
c'est bien ça?
c'est bien ça?
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
5 oct. 2007 à 12:52
5 oct. 2007 à 12:52
écoute il y a 2 caractères à prendr en consideration
CR
LF
et ensuite
CRLF
si tu veux avec CR alors c'est \r
si tu veux avec LF c'est \n
si tu veux avec CRLF alors c'est \r\n
ce qui veut dire que les commandes
doivent fonctionner selon les besoins
CR
LF
et ensuite
CRLF
si tu veux avec CR alors c'est \r
si tu veux avec LF c'est \n
si tu veux avec CRLF alors c'est \r\n
ce qui veut dire que les commandes
cat fichier| perl -ne 'print join "\n",unpack("A4000" x (length($_)/4000), $_)' > resultat_n cat fichier| perl -ne 'print join "\r",unpack("A4000" x (length($_)/4000), $_)' > resultat_r cat fichier| perl -ne 'print join "\r\n",unpack("A4000" x (length($_)/4000), $_)' > resultat_rn
doivent fonctionner selon les besoins