Suppression portion de ligne

Bonjour,

Je voudrais supprimer les premiers caractères d'une ligne.

Ma ligne contient plusieurs \n et je veux en supprimer le début jusqu'au premier \n inclus.

Un truc comme ça :

sed -i 's/(^.*\n)(.*)/\1/'

se plante avec référence \1 invalide dans le côté droit de la commande `s'

Une idée ?

Merci d'avance.

--
A+ blux           
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

4 réponses

Résumé de la discussion

Plusieurs échanges portent sur la suppression des premiers caractères d'une ligne jusqu'au premier saut de ligne, en utilisant sed, et sur les difficultés des escapes comme \\n et des références \\1. Des réponses insistent sur la différence entre l'affichage et le contenu du fichier, proposant d'agir directement sur les caractères d'entrée avec sed, awk ou perl plutôt que sur les sorties affichées. Pratiquement, le problème dépend du contexte et peut impliquer des sauts de ligne réels, des retours chariot CRLF, et la nécessité d'examiner les sorties en raw plutôt qu'en écran. En complément, il est utile de préciser l'exemple de données et le comportement attendu pour proposer une solution robuste adaptée au contexte, à la manipulation des retours à la ligne.

Bobot (l’IA à votre service)
  1. salut,

    il nous faudrait quelques lignes représentatives de ton fichier.

    <hors sujet>
    « Les cons, ça ose tout.
    C'est même à ça qu'on les reconnaît »

    même à parler d'eux-mêmes à la troisième personne.

    ce n'est pas parce qu'une phrase sonne bien, et est rigolote, qu'elle énonce une vérité.
    </hors sujet>
    0
    1. Modérateur
      Ce n'est pas un fichier au sens où on l'entend habituellement mais le résultat d'une commande (sur une seule ligne), je la passe à sed via un pipe.

      Considère un truc comme ça :

      abcdef\nghij\n\lmnopqrst\n

      Je souhaite obtenir :

      ghij\n\lmnopqrst\n

      <hors sujet>
      Ma devise est la même depuis plus de 15 ans, elle ne gêne pas les habitués ;-)
      </hors sujet>
      0
      1. Contributeur
        Salut,

        sed 's/[^\]*\\n//'
        ?
        0
    2. Modérateur
      Bon, en fait, c'est plus compliqué que ça, j'ai ajouté une option dans ma commande et du coup j'ai autre chose en sortie :



      Je veux toujours supprimer le début de ma ligne jusqu'au premier 'name' (exclu et je peux en avoir d'autres)...

      Du coup, ça va changer (un peu) les choses, désolé !

      0
      1. et depuis 15 ans, on ne t'a jamais dit de ne pas poster des captures d'écran, afin qu'on puisse réutiliser la sortie ?

        il faut qu'on puisse reproduire les données que tu veux traiter pour proposer quelque chose d'un peu robuste.

        0
      2. Modérateur
        Whaou, quelle agressivité, ça faisait longtemps !

        Et comme j'ai plein de \n, tu me diras comment je fais pour les copier ici (et qu'ils ne soient pas confondus avec des CRLF) :

        Regexp display option turned on
        
        Display options:
                Dynamic: Off;
                Hidden: Off;
                Raw I18N: Off;
                Resource ID: Off;
                Regexp: On;
                                name: xxxxxx;
                               group: xxxxxxx;
        
                                name: xxxxxx;
                               group: xxxxxx;
        0
      3. @bluxet encore, là, je suis dans un bon jour.

        test #1 : dans une signature
        test #2 : dans un code
        bla\nbla\nbla
        bla
        0
      4. Modérateur
        Je crois que tu n'as pas tout compris où je voulais en venir, fais-toi plaisir avec ça :

        toto\ntiti\n      \npouet\n      name:


        Ce qui revient peu ou prou à ce que j'ai exposé dans mon deuxième message. Il y a simplement la prise en compte des espaces et des \n supplémentaires...
        0
      5. Contributeur
        @bluxEst-ce que c'est le seul
        Regexp: On;
        de tout le fichier ?
        0
    3. Salut,

      Je viens faire Troll_en_chef ;-)

      @lEprofSonDkon : c'est cool pour ta participation !!

      Les deux, là, sont modérateurs sur le site depuis 15 ans y en a qui se planque) ... ça ne voit pas à première vue mais on n'expose pas nos parties intimes aux premiers venus. Quant à moi, j'ai un des plus gros...statut.

      D'un commun accord, il n'y a rien qui t'interdit de vouloir participer...si c'est bon enfant.
      Comment et pourquoi j'interviens ? : Blux qui fait "quelle agressivité" ...je suis d'accord.

      Ici, ce ne sont pas les intervenants qui décident, ça reste le staff.
      Tu sembles avoir les connaissances et l'envi d'en faire profiter les autres ; fait le dans les meilleures conditions en connaissance de cause (c'est comme connaitre, pour un dev, son environnement de production).

      Tu découvrais les signatures...ça en dit beaucoup pour nous autres....

      @blux : change de taf :p
      0
      1. tant que je ne mets pas de points d'exclamations à chaque mot, et/ou des phrases tout en majuscules, je n'ai pas l'impression d'être agressif.

        vous êtes bien susceptibles. <- pas de majuscules, pas de point d'exclamation, pas d'agressivité.
        0
      2. @lEprofSonDkonCa , ce sont les codes que tu TE définies comme étant agressif ; si quelqu'un te dit qu'il ressent de l'agressivité dans tes posts, c'est que la tournure naturelle du post est agressive sans chichi et tralala.
        Essaie les smileys, peut-être.
        0
      3. Contributeur
        Aie,
        y en a qui se planque
        Ça c'est vrai, blux il se planque parfois pendant plus de 6 mois ;-)))
        0
      4. @noctambule28maintenant, vous connaissez "mes " codes.

        l'époque est à l'hypersensibilité, et le ressenti ne prouve que lui même.

        un carnassier n'est pas cruel; pas plus qu'un lapin envers la luzerne.
        c'est l'anthropomorphisme qui (dé)forme la perception de la réalité.
        0