#1 Le 01/03/2009, à 21:54
- Mornagest
Lignes modifiées par une recherche/remplacement et tri
Le titre n'est pas très explicite, je le crains...
J'ai toujours un fichier de 2000 pages à relire (enfin façon de parler je vous rassure) et je voudrais le modifier rapidement pour certaines choses, comme par exemple rechercher une expression et la remplacer par une autre.
Mais j'ai besoin de savoir précisement quelles lignes sont modifiées, puisqu'il s'agit de "patcher" ce fichier...
Du coup je me demandais si c'est possible, en terminal, de faire une recherche dans un fichier et via echo ou un truc du genre sortir la liste des lignes dans lesquelles l'expression serait trouvée...
Je rêve peut-être, mais des fois je suis tellement surpris par les possibilités du terminal qu'on ne sait jamais...
PS : si c'est pas clair, demandez-moi des précisions, je m'exprime peut-être pas bien sur ce coup
Merci d'avance !
Dernière modification par Mornagest (Le 26/04/2009, à 17:18)
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#2 Le 01/03/2009, à 22:54
- coethium
Re : Lignes modifiées par une recherche/remplacement et tri
Oui
Pour afficher seulement les lignes contenant une expression précise :
cat fichier | grep "expression"
Pour modifier une expression par une autre
cat fichier | sed s/"expression"/"remplacement"/g > ./fichier2
Et pour faire un patch :
diff -u fichier fichier2 > fichier.patch
Hors ligne
#3 Le 01/03/2009, à 23:11
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
J'ai fait un essai avec grep ... (je cherche à remplacer par exemple les ...tel mot par ... tel mot donc ajout d'un espace après les points de suspension) mais il me ressort toutes les lignes malheureusement... peut-être n'est-ce pas possible pour la ponctuation ?
En tout cas merci pour le coup de main
J'ai aussi essayé ceci :
grep -n '...' fichier | sudo tee test
mais là aussi il me ressort toutes les lignes (et il y en a )
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#4 Le 01/03/2009, à 23:19
- AnsuzPeorth
Re : Lignes modifiées par une recherche/remplacement et tri
essai sed
sed 's#\.\.\.#\.\.\. #g' fichier
Cette commande remplace les "..." par "... ", pour ecrire dans le fichier mettre opion -i à sed.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 01/03/2009, à 23:25
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Oui, pour modifier le texte ce n'est pas un souci, mais je voudrais logguer les lignes concernées par ledit changement, en fait
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#6 Le 01/03/2009, à 23:39
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
quand tu dis "toutes les lignes" c'est parce que tu parle de très longues lignes qui sont affichés sur plusieurs lignes par ton éditeur de texte mais qui ne contiennent pas de retour chariot?
si oui grep ne t'aidera pas, il faudrait couper pour ne garder que ce qui est entre le '.' précédant et le suivant... avec sed je vois pas trop, ça ressemble plus a un boulot pour awk, mais je ne le connais pas bien...
Hors ligne
#7 Le 02/03/2009, à 12:37
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
En fait certaines lignes sont assez longues pour en occuper deux sur l'éditeur, mais ce n'est pas un retour à la ligne donc normalement ça ne compte que pour une... sauf si je me trompe.
Mais il me ressort l'intégralité des lignes du fichier (soit 74.000 environ) quand je demande de chercher un "..." par exemple. Je n'ai pas essayé avec du texte, je verrai ce soir...
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#8 Le 02/03/2009, à 14:03
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
Je viens de comprendre, tout est normal: en expression régulière ... correspond à toute séquences de trois characteres (donc en gros à part les lignes vides ou preques, il va chopper tout le monde).
si tu cherche bien des points et non pas nimporte quel charactère, tu doit "échaper" tes points, on utilise le charatère \ pour ça, donc:
grep '\.\.\.' fichier
Hors ligne
#9 Le 02/03/2009, à 14:23
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
OK, super, j'essaierai ce soir alors
grep '.\.\.\' fichier | sudo tee test
pour sortir les réponses dans le fichier test... je verrai ce que ça donne.
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#10 Le 02/03/2009, à 15:34
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
pourquoi sudo?
tee est pratique sinon...
Hors ligne
#11 Le 02/03/2009, à 17:04
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Il m'avait bêtement semblé qu'il nécessitait les droits admins mais je vais faire sans, ça me permettra de l'éditer à ma guise ensuite.
Edit : OK droits admins parce que l'exemple que je suivais crée le fichier dans /etc
Dernière modification par Mornagest (Le 02/03/2009, à 17:04)
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#12 Le 02/03/2009, à 19:20
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Commande définitive pour ce faire
grep '.\.\.' Corrections\ VO\ apportées\ par\ le\ BG2FixPack.diff | tee test
La dernière \ me rendait
grep: Barre oblique inverse en suffixe
donc correction.
Merci tout le monde
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#13 Le 04/03/2009, à 22:23
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
J'ai crié victoire trop tôt... le fichier contient des expressions
...avecuncaractèreaprès (à corriger par la ligne suivante
et des expressions
...
avec un espace (donc correctes).
J'essaie de lui faire trouver les lignes contenant uniquement la première expression afin de déceler les lignes à corriger (puisque c'est le but final de la manœuvre) mais je n'arrive pas à manier correctement la commande grep pour ce faire... j'ai essayé
grep '.\.\..' fichier
pour lui faire trouver les lignes où un caractère (.) est décelé après ... mais apparemment il considère les espaces comme un caractère (ce qui semble logique).
En résumé, peut-on chercher uniquement les ... sans espace après ?
La finalité est de corriger ce fichier pour le proposer en patch du fichier original, mais via un setup exécutable sur Windows (puisque c'est un jeu tournant sur Windows mais avec Wine aussi, quand même).
Bref, merci d'avance pour votre coup de main !
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#14 Le 04/03/2009, à 22:30
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
grep '\.\.\.[^ ]'
(tout sauf ' ')
Hors ligne
#15 Le 04/03/2009, à 22:34
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Super !
Une dernière chose encore et puis je pense que je pourrai me démerder seul... y a-t-il moyen de faire une recherche avec
grep '\.\.\.[^ ]'
et également retirer de la recherche l'expression ...~ ? (le ~ étant le symbole pour délimiter les phrases telles qu'elles apparaissent dans le jeu)
Un tout grand merci en tout cas, Tshirtman !
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#16 Le 04/03/2009, à 22:51
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
J'ai essayé ceci
grep -v '\.\.\.[^ ]' fichier
pour inverser la sélection mais il ne me trouve rien, bizarrement... man grep indique qu'il s'agit d'une spécification POSIX, quid ?
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#17 Le 04/03/2009, à 23:22
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
grep '\.\.\.[^ ^~]'
(ça commente ça être joli, on dirais un chat ^^)
Hors ligne
#18 Le 05/03/2009, à 09:16
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
J'y suis enfin arrivé et j'ai pu isoler toutes les lignes que je cherchait (360 occurrences tout de même, ça m'évite un sacré boulot !).
Encore merci, Tshirtman !
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#19 Le 05/04/2009, à 17:27
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Un p'tit up, j'aimerais savoir si c'est possible de trier des lignes par ordre croissant (à savoir, elles commencent toutes par un numéro) avec un quelconque programme.
Je vais devoir fusionner 30 pages de texte avec 72 autres pages, et les mettre dans l'ordre (sinon c'est le boxon intégral).
Est-ce possible ?
Merci d'avance
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#20 Le 05/04/2009, à 17:36
- AnsuzPeorth
Re : Lignes modifiées par une recherche/remplacement et tri
Bjr,
avec sort pour trier . Option -k pour spécifier une colonne.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#21 Le 05/04/2009, à 18:37
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Merci
J'ai tenté un test. Mon fichier contient
@12763 = ~Zorl~
@12767 = ~Ragefast~
@12764 = ~Narlen Darkwalk~
@12766 = ~Poe~
@12765 = ~Neb~
@12768 = ~Raiken~
@12762 = ~Yago~
@12769 = ~Ramazith~
@12770 = ~Rededge~
Je tape
sort Test\ lignes\ à\ trier --key=POS2[,POS6]
pour qu'il commence à trier à partir de la colonne 2 jusqu'à la colonne 6, mais il me répond ceci :
sort: caractère égaré dans le champ de spécification: spécification invalide du champ `2[,6]'
Je ne suis pas sûr d'avoir compris l'exemple du manuel
Edit : quand je tape
sort Test\ lignes\ à\ trier --key=6
ça fonctionne, mais je ne comprends pas comment baliser le tri. J'en ai besoin parce que j'ai environ 75.000 lignes à trier
Dernière modification par Mornagest (Le 05/04/2009, à 18:39)
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#22 Le 05/04/2009, à 19:42
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
utilise l'option -n c'est magique
Hors ligne
#23 Le 05/04/2009, à 19:54
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Ah ouais, quand les lignes ont toutes le même nombre de numéros, ça marche vachement bien (et c'est le cas, heureusement. Je pense que c'est fait exprès ).
Super, merci à tous les deux me suffit de faire un tee dans un autre fichier et tout roule
Dernière modification par Mornagest (Le 05/04/2009, à 19:55)
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#24 Le 11/04/2009, à 13:58
- Mornagest
Re : Lignes modifiées par une recherche/remplacement et tri
Hum, encore une question
Pour les caractères spéciaux, du genre éèàâêç etc... je fais comment pour les trouver via grep ?
N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)
Hors ligne
#25 Le 11/04/2009, à 15:05
- tshirtman
Re : Lignes modifiées par une recherche/remplacement et tri
hum, bonne question, y'a toujours
[àéèçâêîöôïäêë]
(évenutellement à compléter)
je ne sais pas si il y a de solutions plus standard...
Hors ligne