@nam1962
Pour ton information, quand on n’a pas un écran 32’’, toutes les lignes que tu avais postées comme exemples, maintenant corrigées, paraissaient en fait sur deux lignes à l’écran.
Impossible d’affirmer ou extrapoler si cette coupure est interne à ton fichier vérolé, ou à une difficulté à poster une longue ligne sur un forum, sans casser la ligne, ce qui explique les difficultés de formulation précise de recherche.
Pour ceux qui voudraient t’aider avec « ruby », je poste un fichier avec les lignes correctes, ce sera plus simple, plus clair et exploitable, sans contorsion.
ftest.txt (308 Octets)
En résumé, tu souhaites extraire la ‹ deuxième chaîne de X mots séparés par des espaces ›, de toutes les lignes d’un fichier, et qui commencent par ‹ bout ›, et se terminent par ‹ Patings ›, sans aucune ambiguïté ou autre surprise.
Seul toi peut confirmer cette hypothèse pour garantir la fiabilité d’un résultat.
Tu as proposé ce regex (?<=\\n)(\D*?)(?=\\n)
que personne n’a pu tester dans ‹ ruby › pour le moment.
Quel résultat obtiens-tu dans ruby ? Es-tu satisfait du résultat ?
EDIT: testé, c’est pas bon du tout.
――――――――――――――――――――――――――
Toujours pas d’amateur de ‹ ruby-regex › dans ce sujet ? Rien de surprenant, statistiquement parlant.
Le ruby-regex est encore une autre variante de regex parmi les dizaines existantes, et est incompatible avec le regex Linux:
• BRE - Basic Regular Expression engine (POSIX)
• ERE - Extended Regular Expression engine.
Jongler d’une version regex exotique à une autre est plein de pièges, et c’est un exercice moyennement intéressant, voir pas du tout.
Si quelqu’un s’intéresse au ruby-regex pour aider nam1962, il peut essayer ici:
Rubular: a Ruby regular expression editor
Si au bout d’un certain temps, personne ne trouve, pas de panique, le bon vieux sed avec du vrai regex fera l’affaire pour nettoyer ce fichier.
$ sed 's:[^\]*\(\\n\)\+::;s:\\n.*::' ftest.txt
Bidule jaune Verdatre
la cantatrice chauve aphone
truc Machin chose
le ruby regex
est non standard
Bon courage.