548 Stimmen

grep eine Registerkarte in UNIX

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

0voto

kshpolvind Punkte 71

Sie können Folgendes verwenden grep "$(echo -e '\t')"

Einzige Voraussetzung ist echo für die Interpretation von Backslash-Escapes geeignet sein.

0voto

Silasvb Punkte 302

Die "sed-as-grep"-Methode, bei der die Tabulatoren durch ein sichtbares Zeichen persönlicher Präferenz ersetzt werden, ist meine bevorzugte Methode, da sie sowohl deutlich zeigt, welche Dateien die angeforderten Informationen enthalten, als auch, wo sie innerhalb der Zeilen platziert sind:

sed -n 's/\t/\*\*\*\*/g' file_name

Wenn Sie die Zeilen-/Dateiinformationen oder andere grep-Optionen verwenden möchten, aber auch den sichtbaren Ersatz für das Tabulatorzeichen sehen wollen, können Sie dies erreichen, indem Sie

grep -[options] -P '\t' file_name | sed 's/\t/\*\*\*\*/g'

Ein Beispiel:

$ echo "A\tB\nfoo\tbar" > test
$ grep -inH -P '\t' test | sed 's/\t/\*\*\*\*/g'
test:1:A****B
test:2:foo****bar

EDIT: Offensichtlich ist das oben genannte nur nützlich für die Anzeige von Dateiinhalten, um Registerkarten zu finden --- wenn das Ziel ist, Registerkarten als Teil einer größeren Skripting-Sitzung zu behandeln, dient dies keinen nützlichen Zweck.

0voto

YullyBear Punkte 17

Die Antwort ist einfacher. Schreiben Sie Ihr grep und geben Sie innerhalb des Anführungszeichens die Tabulatortaste ein, das funktioniert gut, zumindest in ksh

grep "  " *

-4voto

Accidental brine Punkte 189

Sie können eingeben

grep \\t foo  

oder

grep '\\t' foo

um nach dem Tabulatorzeichen in der Datei foo zu suchen. Sie können wahrscheinlich auch andere Escape-Codes verwenden, obwohl ich nur folgende getestet habe \n. Obwohl es ziemlich zeitaufwendig ist und nicht klar ist, warum Sie das wollen, können Sie in zsh auch das Tabulatorzeichen eingeben, zurück zum Anfang, grep und das Tabulatorzeichen mit Anführungszeichen einschließen.

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