2009-04-11 8 views
0

Je voudrais vérifier un certain nombre de fichiers pour l'existence de caractères de tabulation (ASCII 0x09) en eux. (Pour affirmer que mes sources sont sans tabulation avant de les transférer dans le référentiel.)Comment vérifier la tabulation dans les fichiers?

De préférence avec des outils standard. Bien sûr, grep vient à l'esprit, mais apparemment grep "\t" file.txt ne correspond pas ...?!? Je sais que la réponse est probablement douloureusement simple, mais je suis à court de ressources.

Répondre

5

Bien sûr, grep vient à l'esprit, mais apparemment grep "\ t" fichier.txt ne correspond pas ...?!?

Qui recherche le caractère littéral t. Pour rechercher un littéral de tabulation avec grep, votre shell aura généralement une méthode d'insertion littérale. Par exemple, dans bash, utilisez grep $'\t' foo.txt.

+0

Oui, cela fonctionne. Je ne savais pas que \ t, \ n etc. ne fonctionnait pas comme dans les commandes shell. – DevSolar

0

Je ne crois pas grep comprend la séquence d'échappement \t. Essayez d'insérer un onglet littéral:

grep "<tab>" file.txt 

Ou, vous pouvez utiliser awk à la place.

+0

Les deux réponses ci-dessus étaient correctes. L'onglet "littéral" que vous mentionnez est interprété par le bash, pas inséré sur la ligne de commande. – DevSolar

+0

Comme je l'ai dit, vous devez insérer l'onglet littéral. La plupart des shells ont un moyen d'insérer un onglet littéral. La séquence Ctrl-V, Tab dans bash par exemple. –

+0

... puisque le message original n'a jamais mentionné quel type de shell, je vous ai laissé le soin d'insérer le caractère de tabulation d'une manière appropriée, ce qui diffère également si vous écrivez un script par rapport à la ligne de commande. –

Questions connexes