IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

sed enlever des saut de ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Par défaut sed enlever des saut de ligne
    Bonjour a tous,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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'
     
    $

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Par défaut
    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

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par ldiaz Voir le message
    Je voudrais faire comme ceci:
    sed 'ta commande' fichierin >fichierout
    Tout simplement

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/^T650/{N;N;s/\(.*\)\n/\1 /}' fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supprimer des sauts de lignes avec sed (ou autre chose)
    Par laloupiote dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 26/02/2010, 10h12
  2. Réponses: 13
    Dernier message: 03/12/2005, 17h09
  3. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19
  4. insérer des sauts de lignes en fonction du navigateur
    Par remi59 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/08/2005, 19h15
  5. remplacer des sauts de ligne par '\n'
    Par Miksimus dans le forum Général Python
    Réponses: 5
    Dernier message: 18/07/2005, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo