Est-il possible de tuyau de plusieurs commandes dans un if?

Le cadre d'un script que je suis en train d'écrire doit vérifier plusieurs fichiers texte pour les mêmes chaînes. Avant j'ai juste eu à vérifier un fichier, donc j'ai eu une longue liste de chaînes de caractères dans cateogies de recherche qui sont définis comme des variables. Plus tard dans le script de la variabled sont appelés et la sortie à l'écran si il y a un match:

category_1=$(sudo zcat myfile | egrep -c 'Event 1|Event 2|Event 3')

category_2=$(sudo zcat myfile | egrep -c 'Event 4|Event 5|Event 6')

category_3=$(sudo zcat myfile | egrep -c 'Event 7|Event 8|Event 9')

...

echo Category 1

if [[ $category_1 -ge 2 ]];then

            echo There were $category_1 events

elif [[ $category_1 -eq 1 ]]; then

            echo There was $category_1 event

fi

etc, etc...

Maintenant, j'ai besoin de le changer pour que je puisse vérifier la grepped cordes contre plusieurs fichiers texte. J'ai essayé de définir les nouveaux fichiers que les variables et les tuyaux dans l'instruction if avec la commande grep variable en vain:

category_1=$(egrep -c 'Event 1|Event 2|Event 3')

category_2=$(egrep -c 'Event 4|Event 5|Event 6')

category_3=$(egrep -c 'Event 7|Event 8|Event 9')


myfile=$(sudo zcat myfile)

myfile2=$(sudo zcat myfile2)

myfile3=$(sudo zcat myfile3)

...

echo Category 1 - Myfile



if [[ myfile | $category_1 -ge 2 ]];then

            echo There were $category_1 events in myfile

elif [[ myfile | $category_1 -eq 1 ]]; then

            echo There was $category_1 event in myfile

fi

Il semble que je ne peux pas le tuyau de commandes dans une instruction if.

OriginalL'auteur Hxwk | 2013-12-16