2011-05-03 5 views
0

J'utilise la commande suivante pour rechercher des chaînes dans un fichier délimité par tabulation donné et compter le nombre de fois que la chaîne apparaît.Scripting Shell: grep et délimité par des tabulations

grep -c "string1" filename; grep -c "string2" filename; grep -c "string3" filename 

Dans la commande ci-dessus, chaine1, 2, 3 sont ceux que je suis à la recherche de leur occurrence (en comptant en fait combien de temps ils se produisent) dans le fichier filename.

Je souhaite que la sortie soit envoyée à un fichier dans un format délimité par des tabulations (cela signifiera évidemment un nouveau nom de fichier). Je ne connais pas encore les scripts shell et votre aide sera appréciée.

Merci à l'avance.

Répondre

1

est ici une façon, en utilisant 2 chaînes simplement par exemple:

echo -e "`grep -c 'string1' filename`\t`grep -c 'string2' filename`" > output 

Vous pouvez ajouter la date et ajouter à la sortie existante comme celui-ci:

echo -e "`date +'%Y-%m-%d'`\t`grep -c 'string1' filename`" >> output 
+0

Merci, cela fonctionne. une dernière question. Comment je peux aussi ajouter une tête à ce fichier de sortie. par exemple. Il devrait aussi porter la date courante avant cette opération (echo -e "' grep -c 'string1' nom_fichier' \ t'grep -c 'chaine2' nomfichier' "> sortie) et si cette opération est répétée à nouveau, un nouveau fichier devrait ne pas être formé mais la sortie suivante doit être ajoutée sous la précédente. – Angelo

+0

J'ai mis à jour la réponse avec un exemple d'inclusion d'une colonne de date et d'ajout au fichier existant (réduit à une chaîne pour mieux s'adapter). – WhiteFang34

+0

La sortie de recherche de date et de chaîne doit se faire sur deux lignes différentes. J'ai essayé '\ n' au lieu de' \ t' ... cela donne une erreur – Angelo

Questions connexes