Question AWK recherche
Résolu/Fermé
marcloarec
Messages postés
14
Date d'inscription
mardi 24 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2016
-
29 avril 2015 à 15:50
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 30 avril 2015 à 17:29
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 30 avril 2015 à 17:29
A voir également:
- Question AWK recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche adresse - Guide
- Recherche image - Guide
- Je recherche une chanson - Guide
2 réponses
marcloarec
Messages postés
14
Date d'inscription
mardi 24 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2016
29 avril 2015 à 15:53
29 avril 2015 à 15:53
J'ai essayé ce code
awk -F, '{if ($0 ~ "PADCP" && $0 ~ "CADCP") print $0}' | awk -F "" '{for (i=NF-36;i<=NF;i++) printf ("%s",$i);printf "\n"}'
en pensant que ce qui suivait "$PADCP" était fixe mais ça ne l'est pas alors ça ne marche pas...
awk -F, '{if ($0 ~ "PADCP" && $0 ~ "CADCP") print $0}' | awk -F "" '{for (i=NF-36;i<=NF;i++) printf ("%s",$i);printf "\n"}'
en pensant que ce qui suivait "$PADCP" était fixe mais ça ne l'est pas alors ça ne marche pas...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
29 avril 2015 à 17:28
29 avril 2015 à 17:28
Salut,
Pour bien comprendre...
tu as ça :
Et tu veux quoi en sortie ?
Pour bien comprendre...
tu as ça :
$INGGA,100712.00,5617.13610,N,05223.63366,W,2,14,00.7,019.724,M,0.0,M,0.0,0000*4D
$INVTG,337.16,T,335.86,M,012.$PADCP,27,20140813,100708.85
Et tu veux quoi en sortie ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
>
marcloarec
Modifié par zipe31 le 29/04/2015 à 18:17
Modifié par zipe31 le 29/04/2015 à 18:17
$ cat plop
$INGGA,100712.00,5617.13610,N,05223.63366,W,2,14,00.7,019.724,M,0.0,M,0.0,0000*4D
$INVTG,337.16,T,335.86,M,012.$PADCP,27,20140813,100708.85
$ sed 's/.*\($PADCP\)/\1/' plop
$INGGA,100712.00,5617.13610,N,05223.63366,W,2,14,00.7,019.724,M,0.0,M,0.0,0000*4D
$PADCP,27,20140813,100708.85
Si c'est ce que tu veux et pour que ce soit effectif dans le fichier (là la suppression ne se fait qu'à l'affichage et non dans le fichier), il te suffira de rajouter l'option "-i.bak" à sed :
sed -i.bak 's/.*\($PADCP\)/\1/' fichier
Ça modifie directement le fichier et ça fait une sauvegarde avec l'option .bak
marcloarec
Messages postés
14
Date d'inscription
mardi 24 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2016
30 avril 2015 à 08:32
30 avril 2015 à 08:32
C'est exactement ce qu'il me faut! :)
Comme je suis assez novice par contre, si j'ai un fichier avec des milliers de lignes qui se suivent comme dans mon exemple, est-ce que cette commande va reconnaitre tous les $PADCP dans le fichier?
Et à quoi sert exactement le plop?
En tout les cas merci beaucoup
Comme je suis assez novice par contre, si j'ai un fichier avec des milliers de lignes qui se suivent comme dans mon exemple, est-ce que cette commande va reconnaitre tous les $PADCP dans le fichier?
Et à quoi sert exactement le plop?
En tout les cas merci beaucoup
marcloarec
Messages postés
14
Date d'inscription
mardi 24 mars 2015
Statut
Membre
Dernière intervention
5 juillet 2016
30 avril 2015 à 08:57
30 avril 2015 à 08:57
Je viens d'essayer, ça marche super bien, je retire évidemment ma question sur "plop"... Désolé
En revanche je suis assez curieux donc si l'envie te prend de m'expliquer comment ce code marche je suis preneur.
Merci beaucoup zipe31
En revanche je suis assez curieux donc si l'envie te prend de m'expliquer comment ce code marche je suis preneur.
Merci beaucoup zipe31
dna.factory
Messages postés
25514
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
22 janvier 2025
1 613
Modifié par dna.factory le 30/04/2015 à 17:14
Modifié par dna.factory le 30/04/2015 à 17:14
Si j'ai bien compris (zipe confirmera), ça remplace ( s/avant/après/ ) toutes les chaines composées de n'importe quoi suivit par $PADCP par 'juste' $PADCP
comme y'a pas le g à la fin, si y'a deux fois $PADCP dans une ligne, ça ne fait le traitement que pour le premier.
comme y'a pas le g à la fin, si y'a deux fois $PADCP dans une ligne, ça ne fait le traitement que pour le premier.