Menu

Suppression portion de ligne

Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
- - Dernière réponse : zipe31
Messages postés
36497
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
11 mai 2019
- 4 mars 2019 à 14:18
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.
Afficher la suite 

Votre réponse

4 réponses

Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
6
0
Merci
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>
Commenter la réponse de lEprofSonDkon
Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
3878
0
Merci
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>
zipe31
Messages postés
36497
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
11 mai 2019
6146 -
Salut,

sed 's/[^\]*\\n//'
?
Commenter la réponse de blux
Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
3878
0
Merci
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é !

blux
Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
3878 -
mais la regex, qu'elle soit utilisée par sed ou grep, awk, perl, ou peu importe, va traiter ce qui est affiché sur l'écran, pas les entrailles normalement cachées du fichier.
Ben non, justement ! Elle va traiter ce qu'elle a en entrée comme fait le processus d'affichage écran qui va interpréter les "entrailles normalement cachées du fichier".

Pourquoi une regex peut avoir \s ? C'est bien pour traiter des caractères de contrôles (non affichables en tant que tels mais interprétés).

Le contenu du fichier et la représentation qui en est faite à l'écran sont deux choses différentes !

Si je mets 3\b2 dans un fichier, j'aurai 3 puis 2 à l'affichage et pas 32...
Si je mets \t\t2 dans un fichier, il fera 3 bytes mais il affichera plus que 3 bytes...
lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
6 -
toujours est-il que le fichier contient du texte (quelque soit le nombre de zéros et de uns électroniques réellement stockés) pas sa représentation hexadécimale, même si un éditeur de texte peut faire la conversion à ta demande.
quand tu feras un pipe entre
boiteNoire
et
sed
, c'est du texte compréhensible par les humains qui transitera, qu'il faudra traiter avec des regex, qui ne sont qu'une convention pour "gérer" des groupes : lettres, majuscules, chiffres, ponctuation (point, virgule,espace...)
noctambule28
Messages postés
28919
Date d'inscription
samedi 12 mai 2007
Statut
Webmaster
Dernière intervention
10 mai 2019
7771 > lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
-
Nous, on est pas humain...
blux
Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
3878 -
c'est du texte compréhensible par les humains qui transitera
Ben non, quelle différence à l'écran entre LF et CRLF ? Aucune, pourtant 1 byte ou 2 bytes, donc gestion différente à faire par un outil utilisant les regex.
lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
6 > blux
Messages postés
23909
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 mars 2019
-
peu importe. si tu suspectes que ton fichier a été édité sur W$, il faut le passer par
fromdos
(ou autre) pour rectifier les fins de lignes.
tu peux le faire systématiquement, ça ne nuira pas.

EDIT: et puis, pas la peine d'ouvrir le fichier en "mode binaire" pour vérifier le format des fins de lignes
$ head -1 lorem\ ipsum.dos | cat -v
[...]tristique eleifend non eget purus.^M

$ head -1 lorem\ ipsum | cat -v
[...]tristique eleifend non eget purus.
Commenter la réponse de blux
Messages postés
28919
Date d'inscription
samedi 12 mai 2007
Statut
Webmaster
Dernière intervention
10 mai 2019
7771
0
Merci
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
lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
6 -
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é.
noctambule28
Messages postés
28919
Date d'inscription
samedi 12 mai 2007
Statut
Webmaster
Dernière intervention
10 mai 2019
7771 > lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
-
Ca , 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.
lEprofSonDkon
Messages postés
152
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
11 mai 2019
6 > noctambule28
Messages postés
28919
Date d'inscription
samedi 12 mai 2007
Statut
Webmaster
Dernière intervention
10 mai 2019
-
maintenant, 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é.
zipe31
Messages postés
36497
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
11 mai 2019
6146 -
Aie,
y en a qui se planque
Ça c'est vrai, blux il se planque parfois pendant plus de 6 mois ;-)))
Commenter la réponse de noctambule28