548 Stimmen

grep eine Registerkarte in UNIX

Wie kann ich grep Registerkarte ( \t ) in Dateien auf der Unix-Plattform?

481voto

unwind Punkte 377331

Wenn Sie GNU grep verwenden, können Sie den Perl-style regexp benutzen:

grep -P '\t' *

453voto

antimirov Punkte 4108

Der Trick ist, das $-Zeichen vor einzeln Zitate. Es funktioniert auch für schneiden und andere Werkzeuge.

grep $'\t' sample.txt

102voto

SamK Punkte 1909

Ich habe es nie geschafft, die ' \t ' Metacharakter mit grep arbeiten. Ich habe jedoch zwei alternative Lösungen gefunden:

  1. Verwendung von <Ctrl-V> <TAB> (Strg-V drücken und dann Tabulator eintippen)
  2. Verwendung von awk: foo | awk '/\t/'

49voto

Poo Punkte 713

Von diese Antwort auf Ask Ubuntu:

Sagen Sie grep, dass es die von Perl definierten regulären Ausdrücke verwenden soll (Perl hat \t als Registerkarte):

grep -P "\t" <file name>

Verwenden Sie das wörtliche Tabulatorzeichen:

grep "^V<tab>" <filename>

Verwenden Sie printf um ein Tabulatorzeichen für Sie zu drucken:

grep "$(printf '\t')" <filename>

38voto

tjmoore Punkte 1016

Eine Möglichkeit ist (hier mit Bash)

grep -P '\t'

-P schaltet reguläre Ausdrücke in Perl ein, so dass \t wird funktionieren.

Als Benutzer abwickeln sagt, kann es spezifisch für GNU grep sein. Die Alternative ist, dort buchstäblich einen Tabulator einzufügen, wenn die Shell, der Editor oder das Terminal dies zulässt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X