bash – 保存ls着色后grep’ing

前端之家收集整理的这篇文章主要介绍了bash – 保存ls着色后grep’ing前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我做
$ ls -l --color=always

我得到目录中的文件列表,并为不同的文件类型等提供了一些很好的着色。

现在,我想通过grep来管理ls的彩色输出,以过滤掉一些我不需要的文件。关键是我仍然希望在grep过滤器之后保留着色。

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

我在grep之后失去了着色

编辑:我使用无头服务器Ubuntu 8.10,Bash 3.2.39,几乎没有花哨的配置的股票安装

您的grep可能会删除ls的颜色代码,因为它有自己的着色打开。

你可以“这样做:

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

但是,您了解您在这里的感受是非常重要的。不仅不需要使用ls(使用glob代替),这种特殊情况不仅仅是通过文件名和文件统计信息,还可以通过ls添加的颜色代码

你的问题的真正答案是:不要grep。从来没有必要将ls管入任何东西或捕获其输出。 ls只用于人的解释(例如,仅在交互式shell中查看,为此目的非常方便)。如前所述,您可以使用globs过滤ls枚举的文件

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)

我强烈建议您阅读这两件优秀的文件

>解析解析的不良ls:http://mywiki.wooledge.org/ParsingLs
>球的力量:http://mywiki.wooledge.org/glob

原文链接:https://www.f2er.com/bash/387543.html

猜你在找的Bash相关文章