Je voulais faire grep pour les mots-clés avec des guillemets doubles à l'intérieur. Pour donner un exemple simple:
echo "member":"time" | grep -e "member\""
Cela ne correspond pas. Comment puis-je y remédier?
Le problème est que vous n'échappez pas correctement la chaîne d'entrée, essayez:
echo "\"member\":\"time\"" | grep -e "member\""
Vous pouvez également utiliser des guillemets doubles non échappés entre guillemets simples:
echo '"member":"time"' | grep -e 'member"'
C'est une question de préférence que vous trouvez plus claire, bien que la deuxième approche vous empêche d'imbriquer votre commande dans un autre ensemble de guillemets simples (par exemple ssh 'cmd'
).
echo '"member":"time"' |grep -e "member"
n'a pas testéecho '"member":"time"' |grep -e 'member"'
. Les deux approches sont valides, mais je préfère l'échappement explicite, car l'intention est plus claire.