Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2012, 10h53   #1
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Par défaut sed enlever des saut de ligne

Bonjour a tous,

j'ai un fichier txt avec des champs comme celui ci:

Code :
1
2
3
T650
     ' 4''a'LMH - Natura, Gizarte eta Kultura eta Ingurunearen Ezaguera'j'-Interneteko
     baliabideak'j'-Hezteko Objektu Digitalak(Eskola 2.0.)'ZZ0011626'
Un autre exemple:
Code :
1
2
3
4
 
T650
     ' 4''a'DBH - Naturaren Zientziak'j'-Interneteko baliabideak'j'-Hezteko Objektu
     Digitalak(Eskola 2.0)'ZZ0012079'


Comme vous pouvez le voir, il y a un saut de ligne entre Interneteko et baliabideak.
Je souhaiterais degager ce saut de ligne juste pour toutes les lignes qui commence par T650.

Avez vous deja fait cela? avec sed peu etre? ou perl?
D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 11h09   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Citation:
Je souhaiterais degager ce saut de ligne juste pour toutes les lignes qui commence par T650.
Le problème c'est que les lignes incriminées ne commencent pas par "T650", mais suivent ladite ligne

Si le formatage est toujours le même, alors essaies ça :

Code :
1
2
3
4
5
6
7
$ sed '/^T650/N;N;s/\(.*\)\n/\1/' brol 
T650
     ' 4''a'LMH - Natura, Gizarte eta Kultura eta Ingurunearen Ezaguera'j'-Interneteko     baliabideak'j'-Hezteko Objektu Digitalak(Eskola 2.0.)'ZZ0011626'
T650
     ' 4''a'DBH - Naturaren Zientziak'j'-Interneteko baliabideak'j'-Hezteko Objektu     Digitalak(Eskola 2.0)'ZZ0012079'
 
$
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 12h15   #3
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut
Merci pour ta reponse ; j'ai un petit doute:
comment je passe le fichier en argument avec cette commande sed?

c'est sed -s?
Je voudrais faire comme ceci:
sed 'ta commande' fichierin >fichierout

D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 12h19   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par ldiaz Voir le message
Je voudrais faire comme ceci:
sed 'ta commande' fichierin >fichierout
Tout simplement
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 12h28   #5
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut
ok la commande run...mais je crois que y'a un probleme.
Le fichier est une succestion de registre tel que celui ci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
..MARC..
TITN
     10461
LD05
     n
LD06
     a
LD07
     m
LD18
     b
T001
     00000000010439
T005
     20100510:09055800
T008
     100510s1998    esp           000 1 baq c
T019
     '  ''a'NA 215-1998
T020
     '  ''a'84-8331-055-4
T080
     '  ''a'821.361-93
T100
     '1 ''a'Zubeldia, Iñaki'ZZ0000457'
T245
     '10''a'Ipuin eroa'c' / testua, Iñaki Zubeldia ; marrazkiak, Jon Zabaleta
T250
     '  ''a'3. argit
T260
     '  ''a'Donostia'b' : Elkarlanean'c', 1998
T300
     '  ''a'71 or.'b' : ir.'c' ; 21 cm
T440
     ' 0''a''LK_'Miru'LK='Miru'.t440.''v' ; 26
T521
     '  ''b' 8 urtetik aurrera (Gorria)
T650
     ' 4''a'Animaliak'x'-Babesa'j'-Ipuinak'j'-Haur eta gazteentzako liburuak
'ZZ0008014'
T700
     '1 ''a'Zabaleta, Jon'ZZ0001355'
T856
     '  ''u' http://www.elkar.com'z' Argitaletxearen web-orria
T856
     '  ''u' http://www.hezkuntza.ejgv.euskadi.net/r43-euskcont/eu/contenidos/informacion/eima/eu_2010/adjuntos/8483310554.pdf
     'z' Azala eta sinopsia
..MARC..

Tu vois, seul le champs T650 m'interesse enfin comme tu disais la ligne d'apres:
Code :
1
2
3
T650
     ' 4''a'Animaliak'x'-Babesa'j'-Ipuinak'j'-Haur eta gazteentzako liburuak
'ZZ0008014'
Le resulta final souhaoté serait comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
..MARC..
TITN
     10461
LD05
     n
LD06
     a
LD07
     m
LD18
     b
T001
     00000000010439
T005
     20100510:09055800
T008
     100510s1998    esp           000 1 baq c
T019
     '  ''a'NA 215-1998
T020
     '  ''a'84-8331-055-4
T080
     '  ''a'821.361-93
T100
     '1 ''a'Zubeldia, Iñaki'ZZ0000457'
T245
     '10''a'Ipuin eroa'c' / testua, Iñaki Zubeldia ; marrazkiak, Jon Zabaleta
T250
     '  ''a'3. argit
T260
     '  ''a'Donostia'b' : Elkarlanean'c', 1998
T300
     '  ''a'71 or.'b' : ir.'c' ; 21 cm
T440
     ' 0''a''LK_'Miru'LK='Miru'.t440.''v' ; 26
T521
     '  ''b' 8 urtetik aurrera (Gorria)
T650
     ' 4''a'Animaliak'x'-Babesa'j'-Ipuinak'j'-Haur eta gazteentzako liburuak'ZZ0008014'
T700
     '1 ''a'Zabaleta, Jon'ZZ0001355'
T856
     '  ''u' http://www.elkar.com'z' Argitaletxearen web-orria
T856
     '  ''u' http://www.hezkuntza.ejgv.euskadi.net/r43-euskcont/eu/contenidos/informacion/eima/eu_2010/adjuntos/8483310554.pdf
     'z' Azala eta sinopsia
..MARC..
J'ai l'impression que le sed ne prend pas le champs T650...et qu'il vire les saut de ligne un peu partout:
Regarde le resultat:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
..MARC..TITN
     9LD05
     nLD06
     aLD07
     mLD18
     bT001
     00000000000001T005
     20090429:10082000T008
     060403 2004                        baqT019
     '  ''a'M-34416-2004T020
     '  ''a'84-667-3834-7T027
     '  ''a'11100T100
     '1 ''a'Ferrero, Luis'ZZ0000375'T245
     '10''a'Matematika'b' :2:  Irakasleentzako materiala'c' / Luis Ferrero, María     del Carmen Jiménez, María Gregoria Martín
T260     '  ''a'Madrid'b' : Anaya-Haritza'c', 2004
T300     '  ''a'4 bolumen dituen karpeta  (159, 31, 39, 95 or.)'c' ; 32 x 26 cm
T440     ' 0''a''LK_'Apain eta dotore'LK='Apain eta dotore'.t440.'
T500     '  ''a'2004.10.19
T505     '0 ''a'1. bolumena: Proposamen didaktikoa'a' -- 2. bolumena: Programazioa
     'a' -- 3. bolumena: Ebaluazioa'a' -- 4. bolumena: Aniztasunaren tratamenduaT521
     '0 ''a'2.mailaT650
     ' 4''a'LMH - Matematika'ZZ0007003'T700
     '1 ''a'Jimenez, Maria del Carmen'ZZ0001284'T700
     '1 ''a'Martín, María Gregoria'ZZ0001256'T856
     '  ''u' http://www.anaya.es'z' Argitaletxearen web-orriaT856
     '  ''u' http://www.hezkuntza.ejgv.euskadi.net/r43-573/eu/contenidos/informacion/dih6/eu_15733/adjuntos/8466738347.pdf     'z' Aurkibidea
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 13h08   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Oups, comme je n'avais testé que sur ton 1er exemple avec 2 lignes similaires, j'avais oublié les parenthèses

Essaies comme ça :

Code :
sed '/^T650/{N;N;s/\(.*\)\n/\1 /}' fichier
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 13h26   #7
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Uffff genial
ça marche !!
Merci beaucoup pour ton aide. Et bon week.
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 13h58   #8
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut
j'ai encore un petit soucis avec ça,
j'espere que le samedi tu lis tes mails...
Regarde, le fichier termine comme ceci:

Pres traitement avec le sed, le champs d'apres monte d'un ligne:

Code :
1
2
3
T650
     ' 4''a'Haur jolasak'j'-Ipuinak'j'-Haur eta gazteentzako liburuak'ZZ0007901'T700
     '1 ''a'Jaka, Aiora'ZZ0007649'
et en fait ça devrait etre comme ceci:

Code :
1
2
3
4
5
T650
     ' 4''a'Haur jolasak'j'-Ipuinak'j'-Haur eta gazteentzako liburuak'ZZ0007901' 
 
T700
     '1 ''a'Jaka, Aiora'ZZ0007649'
Tu crois que tu peux modifier le sed?

D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 14h17   #9
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Ufff j'avais pas vu le fichier en entier,
ragarde ce que je trouve:


Code :
1
2
3
T650
     ' 4''a'LMH - Natura, Gizarte eta Kultura Ingurunearen Ezaguera'j'-Ordenagailu
programak'ZZ0003035'

Ce T650 ci n'est pas Ok, il est coupé apres: Ordenagailu
Tu pense que je dois executer le sed plusieurs fois?

D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h51.


 
 
 
 
Partenaires

Hébergement Web