Question

Si je fais

$ ls -l --color=always

Je reçois une liste de fichiers à l'intérieur du répertoire avec une coloration agréable pour différents types de fichiers, etc ..

Maintenant, je veux être en mesure de diriger la sortie de couleur par ls pour filtrer grep certains fichiers que je ne ai pas besoin. La clé est que je veux toujours conserver la coloration après le filtre grep.

$ ls -l --color=always | grep -E some_regex

^ je perds la coloration après grep

EDIT: J'utilise serveur sans tête Ubuntu 8.10, Bash 3.2.39, à peu près un stock d'installation sans configs fantaisie

Était-ce utile?

La solution

Votre grep supprime probablement des codes de couleur de car il a ls sa propre coloration activée.

"pourrait" faire ceci:

ls -l --color=always | grep --color=never pattern

Cependant, il est très important que vous compreniez ce que vous êtes exactement ping ici grep. Non seulement est inutile glob ping <=> (utiliser un lieu <=>), ce cas particulier est par ping <=> non seulement les noms de fichiers et les statistiques de fichiers, mais aussi à travers les codes de couleurs ajoutés par <=>

La vraie réponse à votre question est: Ne pas il <=>. Il n'y a jamais besoin de tuyau en tout ou <=> capturer sa sortie. Ne vise <=> à l'interprétation humaine (par exemple. regarder à dans un interactive shell seulement, et à cet effet, il est extrêmement pratique, bien sûr). Comme mentionné précédemment, vous pouvez filtrer les fichiers en utilisant <=> globs énumère:

ls -l *.txt      # Show all files with filenames ending with `.txt'.
ls -l !(foo).txt # Show all files with filenames that end on `.txt' but aren't `foo.txt'. (This requires `shopt -s extglob` to be on, you can put it in ~/.bashrc)

très vous recommandons de lire ces deux excellents documents sur la question:

Autres conseils

Vous devriez vérifier si vous utilisez réellement les ls « vrais », tout en appelant directement le binaire:

/bin/ls ....

Parce que:. Le code décrit doit vraiment travailler, à moins que ls ne tient pas compte --color = toujours pour une raison bizarre ou bug

Je soupçonne certains alias ou une fonction qui ajoute (directement ou par une variable) certaines options. Double-vérifier que ce n'est pas le cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top