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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |