2009-04-11 18 views
0

Ich möchte eine Reihe von Dateien auf das Vorhandensein von Tab-Zeichen (ASCII 0x09) in ihnen prüfen. (Um zu bestätigen, dass meine Quellen Tab-frei sind, bevor sie in das Repository übertragen werden.)Wie nach Tabulator in Dateien suchen?

Vorzugsweise mit Standardwerkzeugen. Natürlich fällt mir Grep ein, aber anscheinend stimmt grep "\t" file.txt nicht überein ...?!?

Ich bin mir bewusst, die Antwort ist wahrscheinlich schmerzhaft einfach, aber ich bin ratlos.

Antwort

5

Natürlich, grep springt in den Sinn, aber anscheinend grep "\ t" file.txt passt nicht ...?!?

Das sucht nach dem Literalzeichen t. Um nach einem Tabelliteral mit grep zu suchen, wird Ihre Shell normalerweise eine Literal-Einfügemethode haben. Verwenden Sie in bash beispielsweise grep $'\t' foo.txt.

+0

Ja, das funktioniert. Mir war nicht bewusst, dass \ t, \ n usw. in Shell-Befehlen nicht so funktionierten, wie sie sind. – DevSolar

0

Ich glaube nicht, grep die Escape-Sequenz \t versteht. Versuchen Sie, eine wörtliche Registerkarte einzufügen:

grep "<tab>" file.txt 

Oder Sie können stattdessen awk verwenden.

+0

Die zwei obigen Antworten waren korrekt. Die "literal" Registerkarte, die Sie erwähnen, wird von der bash interpretiert, nicht in der Befehlszeile eingefügt. – DevSolar

+0

Wie ich schon sagte, müssen Sie den Literal Tab einfügen. Die meisten Shells können eine literale Registerkarte einfügen. Die Sequenz Strg-V, Tab in der Bash zum Beispiel. –

+0

... Da der ursprüngliche Beitrag nie erwähnt, welche Art von Shell, ich habe es Ihnen überlassen, um die Tab-Zeichen in einer geeigneten Weise, die auch unterscheidet, wenn Sie ein Skript vs über die Befehlszeile schreiben. –

Verwandte Themen