Gibt es einen Befehl, der einen bestimmten Ausdruck im Text hervorhebt?
Ich suche so etwas wie die Suchfunktion in weniger, aber mit normaler Textausgabe auf stdout anstelle des less
Viewers.
Beispiel:
$ cat test.txt | highlight "an"
Die Aussichten für eine geordnete NATO Rückzug aus AFGH eine ist ein erlitten zwei Rückschläge als Präsident Hamid Karzai DM eine ded Grenzen für Truppen der Vereinigten Staaten ein d die Talib ein Friedensgespräche gestoppt.
Der angegebene reguläre Ausdruck kann mit Farbe oder auf andere Weise hervorgehoben werden.
bash
highlighting
Frank
quelle
quelle
highlight
KommandosAntworten:
Ich bin mir nicht sicher, ob dies auf eine Funktion oder einen versteckten Nebeneffekt zurückzuführen ist, aber dies funktioniert in GNU
grep
2.11:quelle
grep 'an' OR ''
. Das''
stimmt an jeder Stelle in der Eingabe erfolgreich mit nichts überein. Es wird nur dasan
hervorgehoben, weil Sie das Nichts nicht hervorheben können. :-)grep --color -e 'an' -e ' '
(passend zu einem Raum, der nicht gefärbt werden kann, hat es geklappt). Viel besser als Pipingsed -e ''/an/s//$(printf "\033[33;1m&\033[0m")/''
, aber vielleicht ist Letzteres performanter. Ändern Sie 'an' für einen anderen Suchbegriff. ;)bashrc
geändert, mit dem ich alle Aliase aufgelistet habe, und jetzt sind alle meine Aliase rot hervorgehoben. Super!alias aliases="clear;cat ~/.bashrc|grep --color \"alias\""
ack hat eine
--passthru
Option, die dies erledigt:quelle
ack-grep
... (der Nameack
wird auf einen Kanji-Code-Konverter angewendet)Sie können dieses Skript von mir ausprobieren. Sie können entweder eine Datei angeben oder Standardeingaben vornehmen. Sie können einen regulären Python-Ausdruck für den Text definieren, den Sie hervorheben möchten. Der hervorgehobene Text ist standardmäßig neongrün (hey, ich verwende einen schwarzen Hintergrund!). Sie können jedoch den ANSI-Farbcode ändern .
Hier ist ein Beispiel.
Die Aussichten für eine geordnete NATO Rückzug aus AFGH eine ist ein erlitten zwei Rückschläge als Präsident Hamid Karzai DM eine ded Grenzen für Truppen der Vereinigten Staaten ein d die Talib ein Friedensgespräche gestoppt.
Die Aussicht auf einen geordneten NATO- Rückzug aus Afghanistan erlitt zwei Rückschläge, als Präsident Hamid Karzai die Begrenzung der US-Truppen forderte und die Taliban die Friedensgespräche einstellten.
quelle
<b>
Sie diese Option, wenn ein Teil eines Wortes fett gedruckt werden muss.$cat test.txt | grep --colour=auto -C 100000 an
"Farbe" funktioniert auch. Sie können auch einen Alias definieren, damit grep immer die Option verwendet:
alias grep='grep --colour=auto -C 100000'
Fügen Sie das Obige irgendwo in /etc/profile.d/ ein oder in Ihre .bashrc oder was auch immer.
quelle
-C 1000000
dir wirst du nie wieder greifen können. Mach einfachalias highlight='grep --colour=auto -C 1000000'. The cat in the first example is also not necessary:
grep --colour = auto -C 100000 file`.grep
mit der Sammlung von Kontextzeilen