#1 Le 08/02/2019, à 14: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, à 18: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, à 15: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 .
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, à 15: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, à 16: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, à 16:34
- Pam547
Re : [Résolu]Sélectionner les lignes commençant par un verbe à l'infinitif
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, à 16: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, à 16: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, à 18: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, à 19: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, à 15: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, à 15: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, à 15: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, à 15: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