2010-12-10 68 views
1

Je tente de migrer un paquet de mes données d'un service Web vers un autre, et dans le processus je veux m'assurer de le faire juste pour ne pas être obsédé par quelque chose qui ne va pas ou qui ne va pas. Une des choses que je veux faire est de trouver des mots menés par un signe dans un seul fichier, puis d'extraire le mot qui les suit immédiatement, puis de les imprimer séparés par des virgules. Donc, par exemple, à certains moments du fichier, il y aura "#word - # word2: # word3" - avec des trucs complètement aléatoires entre eux, attention, - Et puis je voudrais pouvoir palmage arrière commeUtilisez grep (ou n'importe quoi) pour trouver les mots clés menés par un symbole puis les résultats séparés par des virgules

mots = « mot, mot2, mot3 »

le creusement de fossés poundsign et tout autre charabia autour d'eux. Je ne suis complètement inutile à rien au-delà des scripts de base. Toute aide serait grandement appréciée.

Répondre

1

Vous pouvez essayer:

grep -o "#[^ ]*" file | tr -d '#' | tr '\n' ',' 
+0

C'est un bon début. Ce que je finis avec la plupart des fichiers sur lesquels je cours ce sont les données que je recherche plus environ 15 entrées que je ne suis pas. C'est de ma faute si je ne pense pas à mentionner que ce sont des fichiers HTML, donc chaque ID, code couleur, etc. est précédé d'un hashtag. Le lien commun pour les données que je recherche est cependant qu'il est toujours suivi par une balise d'ancrage de fermeture, donc le modèle que je cherche est en fait #word. – RyanMM

+0

grep -o "# [^] *" fichier | tr -d '#' | tr '\ n' ',' semble faire l'affaire sur un test initial; Je vous rapporterai peu de temps après quelques essais supplémentaires. – RyanMM

+0

Juste couru dans un effet secondaire désagréable tout en essayant de laisser tomber l'ancre de fermeture; grep -o "# [^] *" fichier | tr -d '#' | tr -d '' | tr '\ n' ',' finit par enlever la lettre 'a' de tous les résultats de recherche. – RyanMM