less in Kombination mit sed Farbsequenzen verhindert Seitenumbrüche

less in Kombination mit sed Farbsequenzen verhindert Seitenumbrüche

Wenn ich den folgenden Befehl verwende, der die Zeilenausgabe gelb färbt, wird aus „less“ im Wesentlichen „cat“, wodurch die gesamte Datei ausgedruckt wird und alle Funktionen deaktiviert werden, die ich bei „less“ benötige, z. B. das Anhalten bei Seitenumbrüchen, das Zulassen der Navigation usw. Die meisten Argumente, mit denen Sie „less“ manipulieren können, werden ebenfalls ignoriert. Gibt es eine Möglichkeit, zu verhindern, dass eine Farbsequenz von „sed“ die Funktionen von „less“ beeinträchtigt?

less file | sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/'

Antwort1

lessVielleicht wollten Sie für die Ausgabe von verwenden sedund nicht umgekehrt:

sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/' file | less -R

Weiterführende Literatur:

Antwort2

Wenn Sie die Ausgabe an übergeben möchten, lessbrauchen Sie sedüberhaupt keinen Befehl. Legen Sie einfach fest, wie lessdas gesuchte Muster hervorgehoben werden soll (z. B. in .bashrc):

export LESS_TERMCAP_so=$'\e[93m'    # begin standout mode
export LESS_TERMCAP_se=$'\e[m'      # end standout mode

und dann lessmit -pder Option ausführen:

less -p '.*DATA.*' file

verwandte Informationen