2010-11-22 9 views
12

Je suis suivi de certains mots clés sur Twitter en utilisant la commande ci-dessous. Je veux imprimer juste la propriété "screen_name" de l'auteur du tweet. Je pourrais obtenir la commande ci-dessous fonctionnant mais vouloir enlever des "guillemets" de l'auteur screen_name. Comment pourrais-je faire ça?Supprimer des devis avec SED

curl -N -d @tracking http://stream.twitter.com/1/statuses/filter.json \ 
    -umyuser:mypass | \ 
sed -e 's/[{}]/''/g' | \ 
awk -v RS=',"' -F: '/^screen_name/ {print $2}' 
+0

Pourquoi avez-vous les célibataires supplémentaires citations ici? 'sed -e 's/[{}] /' '/ g'' Cela ne devrait-il pas être simplement' sed -e' s/[{}] // g''? À quoi ressemble la sortie de la commande curl avant de passer à sed et awk. Les pipelines qui incluent à la fois 'sed' et' awk' peuvent souvent être simplifiés en ceux sans 'sed'. –

Répondre

64

Pourquoi utiliser sed?

| tr -d '"' 

bon outil pour le bon emploi.

+0

mon script doit être compatible solaris :-) donc j'ai besoin d'une sed car tr n'est pas génial sur solaris – user1820801

+0

Il n'y a pas de problème majeur avec 'tr' sur solaris tant que vous utilisez'/usr/xpg6/bin/tr' et non '/ usr/bin/tr'. – Sorpigal

+0

Je ne suis pas sûr que la logique dans un système de configuration sans agent est d'aller chercher des binaires dans xpg6 sur votre cible. Je garderai cela à l'esprit, mais je préfère faire un script en utilisant sed. – user1820801

2

Vous pouvez faire:

...existing_commands | sed 's/"//g' 
+0

a tenté d'ajouter ceci à la fin, mais a cessé de fonctionner – Thiago

+1

Si votre commande actuelle donne '' nom_utilisateur ''en sortie, puis ajoute' | sed 's/"// g'' à la fin devrait donner' user_name' en sortie – codaddict

+0

ne fonctionne pas .. et si j'exécute ma commande initiale avec "> fichier" à la fin il n'écrit pas dans le fichier. Peut-être quelque chose en rapport avec le {print $ 2}.) Pensées? – Thiago