Effacer un champs de donnees dans un fichier [Résolu/Fermé]

hssissen 845 Messages postés mercredi 20 juillet 2005Date d'inscription 9 janvier 2017 Dernière intervention - 14 juin 2016 à 22:02 - Dernière réponse : dubcek 17191 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention
- 15 juin 2016 à 16:23
Bonjour,

J'ai un fichier de donnees texte enregistrees selon un format fixe sur chaque ligne, j'aimerais effacer un champs au meme coordonnees sur chacune des lignes et enregistrer le tout dans un nouveau fichier.

exp. effacer le champs qui va de la colonne 10 a la colonne 20 sur chaque ligne du fichier.

Merci de votre aide.
Afficher la suite 

6 réponses

Rocailleux 540 Messages postés mercredi 9 mars 2016Date d'inscription 26 juillet 2017 Dernière intervention - 14 juin 2016 à 22:20
0
Utile
awk '{ print $1 " " $2 " " $3}' fichier



$1,$2,$3 étant les colonnes à afficher


ou

awk '{ $1=""; print $0}' fichier



$1 étant la colonne à supprimer
zipe31 35174 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 14 juin 2016 à 22:29
0
Utile
3
Salut,
Merci de donner un exemple précis de ton fichier, avec si possible un AVANT et un APRÈS.
hssissen 845 Messages postés mercredi 20 juillet 2005Date d'inscription 9 janvier 2017 Dernière intervention - 15 juin 2016 à 15:08
Voici les 10 premoeres lignes du fichier:


19573222956134671359066058421200300205000100051610620220246503 1P 1 005317111043197
6959342465653461124602886342120030041100020007182061 1P 1 003406116239592
7955312995673468188002394542122010008200070015140051 41P11 1 013772113250410
7954342525673468186600265642110040051000010037244081 2P21 1 013075112530127
69593525256234611866002656421100400510001700252250820203349313 2P12121 2 011646112530127
8955362525693468185902237142110040051000030007182061 1P11 1 003406112530127
2959322135623465170777698742120030030900060028121051 2P11111 2 018672113620471
0955382575643463122107971642110040051000130017272091 1P11 1 006869212530127
9955392575613464147309133442110040051000570130456221 44P333231114341121 3 226630312530127
39583425756434631708087500421100400510002000171070520106204812 61P1111

Je voudrais donc supprimer le champs allant de la colonne 107 a 114 sur chaque ligne du fichier. Les nouveaux resultats seront enregistes dans un nouveau fichier.

merci de votre aide.
UnGnU 611 Messages postés lundi 2 mai 2016Date d'inscription 12 décembre 2017 Dernière intervention > hssissen 845 Messages postés mercredi 20 juillet 2005Date d'inscription 9 janvier 2017 Dernière intervention - 15 juin 2016 à 15:33
Salut,

sed -rn 's/(.{106}).{7}(.*)/\1 \2/p' fichier_entrée > fichier_sortie
hssissen 845 Messages postés mercredi 20 juillet 2005Date d'inscription 9 janvier 2017 Dernière intervention > UnGnU 611 Messages postés lundi 2 mai 2016Date d'inscription 12 décembre 2017 Dernière intervention - 15 juin 2016 à 16:21
Merci beaucoup UNGnU, j'ai juste corrige le {7} par {8} car il laissait trainer un mauvais champs, maintenant avec les tests que je viens d'effectuer entre le vieux et le nouveau fichier sont tous concluants.

Bonne continuation.
dubcek 17191 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 15 juin 2016 à 16:23
0
Utile
hello
awk '{print substr($0, 1, 106) substr($0, 115)}' in > out