加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 保存ls着色后grep’ing

发布时间:2020-12-15 19:10:21 所属栏目:安全 来源:网络整理
导读:如果我做 $ ls -l --color=always 我得到目录中的文件列表,并为不同的文件类型等提供了一些很好的着色。 现在,我想通过grep来管理ls的彩色输出,以过滤掉一些我不需要的文件。关键是我仍然希望在grep过滤器之后保留着色。 $ ls -l --color=always | grep -
如果我做
$ 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读