Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/02/2019, à 15:47

Pam547

[Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Bonjour

Je fais un bilan de compétence professionnelle parce que je dois me réinscrire au pole-emplois.
Bref, j'étudie les motivations et organise les compétences du ROME à ma sauce. ( https://discord.gg/mbgp3Yf )

La combinaison ctrl+c ctrl+v va finir par avoir raison de ma volonté.

Donc pour supprimer les lignes vides, j'aurais :

sed '/^$/d' mon_fichier.txt sed '/./!d' mon_fichier.txt

Après « j'ai essayé de développer la chose » seul, mais la manipulation des chaînes de caractères, c'est quelque chose que je fais trop rarement.

Quelqu'un pourrait-il, s'il lui plaît, partager la ligne qui permettrait de supprimer toutes les lignes ne commençant pas par un verbe à l'infinitif dans un fichier txt. (Et si en option je pouvais aussi garder mes délimiteurs de section de cette forme -------------------------- ce serait génial.)

Dernière modification par Pam547 (Le 08/02/2019, à 19:01)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#2 Le 08/02/2019, à 16:31

Pam547

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Merci pour votre attention. Je prends le problème à l'envers hmm.

Quelqu'un pourrait-il, s'il lui plaît, partager la ligne qui permettrait d'envoyer dans un fichier toutes les lignes d'un fichier txt commençant par ------ et un verbe à l'infinitif ?

C'est surtout pour déterminer si le premier mot de la ligne est un infinitif que j'ai un souci.

1 : Définir la longueur de la chaîne de caractère du premier mot (expr length $chaine à mettre dans une variable à traiter)
2 : Faire un test sur les deux dernières valeurs de la chaîne et vérifier si elles appartiennent à une des valeur de la table {er ; ir ; re}
3 : Si oui les envoyer dans le fichier >

C'est facile à faire pour quelqu'un ?

Dernière modification par Pam547 (Le 08/02/2019, à 16:32)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#3 Le 08/02/2019, à 17:18

Watael

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

comment peut-on différencier boire et pourboire ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 08/02/2019, à 17:34

Pam547

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Watael a écrit :

comment peut-on différencier boire et pourboire ?

En soustrayant la soustrouille de l'alcool ?


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#5 Le 08/02/2019, à 17:51

diesel

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Tu peux déjà essayer ça pour dégrossir :

grep -E "^\b\S+?(er|ir|ire|ure)\b|^-----" ton_fichier

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 08/02/2019, à 17:51)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#6 Le 08/02/2019, à 19:00

Pam547

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Génial, merci beaucoup Jean-Marie. Pour le fichier testé ta ligne fonctionne à merveille.

grep : recherche d'un motif donné dans un fichier.
option -E : le motif est une expression rationnelle.
" " : référencement du motif comme variable.
^ : début de ligne.
\b    \b : chaîne vide en début de mot et en fin de mot (:/ le motif est un mot :S ).
\S : valide tout caractère jusqu'au premier espace.
+? : l'élément précédent doit être présent une fois. Comme l'élément précédent est une table de plusieurs motifs certains éléments sont optionnels.
(   ) : valide n'importe quelle expression rationnelle comprise entre les parenthèses, et indique le début et la fin d'un groupe.
| : Plusieurs motifs sont sélectionnés (ou).

Merci encore.

Je reviendrais réfléchir si trop de lignes sont encore à trier.


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#7 Le 08/02/2019, à 20:52

diesel

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Sauf que ma description des fins de verbes a été faite à la va vite et est incomplète.

Il faut mieux faire

grep -E "^\b\S+?([EIei][Rr]|[CDITUcditu][Rr][Ee])\b|^-----" ton_fichier

qui permettra en plus de retenir les verbes convaincre, prendre et connaître, et cela, que les verbes soient écrits en majuscules ou en minuscules.

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 09/02/2019, à 16:37)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#8 Le 09/02/2019, à 16:17

LeoMajor

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

avec le paquet verbiste

cat test.txt

vanille fraise chocolat
boire 1 chocolat
pourboire : 10 euros
Réveiller à 6 heures
réveil sous les tropiques
----
coder a+b
a* à chiffrer
Détruire z
CONSTRUIRE 
Etre superman
Être terrien sur mars
awk 'func verbiste(word) {cmd="/usr/bin/french-conjugator --mode infinitive " tolower(word) " 2>/dev/null | grep -c -"; cmd | getline tmp; if(tmp<2){$0=""}; close(cmd) }; $1 { verbiste($1); if($0)print }'   test.txt

renvoie

boire 1 chocolat
Réveiller à 6 heures
----
coder a+b
Détruire z
CONSTRUIRE 
Être terrien sur mars

Hors ligne

#9 Le 09/02/2019, à 16:36

diesel

Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif

Sans paquet supplémentaire et en étant plus court à écrire, je fais :

jean-marie@jean-marie:~$ cat test.txt
vanille fraise chocolat
boire 1 chocolat
pourboire : 10 euros
Réveiller à 6 heures
réveil sous les tropiques
----
coder a+b
a* à chiffrer
Détruire z
CONSTRUIRE 
Etre superman
Être terrien sur mars
jean-marie@jean-marie:~$

et j'obtiens :

jean-marie@jean-marie:~$ grep -E "^\b\S+?([EIei][Rr]|[CDITUcditu][Rr][Ee])\b|^---" test.txt
boire 1 chocolat
pourboire : 10 euros
Réveiller à 6 heures
----
coder a+b
Détruire z
CONSTRUIRE 
Etre superman
Être terrien sur mars
jean-marie@jean-marie:~$

J'ai "pourboire" en trop mais je n'ai pas raté "Etre superman".

Pour l'emploi envisagé, je préfère en avoir quelques-uns en trop qu'en rater.

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 09/02/2019, à 16:38)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne