【问题标题】:Colored Text in Git Bash OutputGit Bash 输出中的彩色文本
【发布时间】:2021-09-28 02:36:06
【问题描述】:

我做了一个别名来打印当前目录树:

find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"

.
 |-trace.pcap
 |-parent
 | |-chdir1
 | | |-file1.txt
 | |-chdir2
 | | |-file2.txt
 | | |-file3.sh
 |-tmp
 | |-json-c-0.11-4.el7_0.x86_64.rpm

效果很好,但是很难解释一堵白色的文字墙。我想知道如何使文件夹名和文件名不同颜色?

我不能使用“树”命令,一切都需要手动完成,没有任何第三方。

【问题讨论】:

  • 如果你想要可读性,那么为什么不ls -R"s/[^-][^\/]*\//这是怎么回事?为什么要替换这些字符?
  • 我只是在使用我在其他帖子中找到的内容:stackoverflow.com/questions/3455625/…

标签: linux bash alias


【解决方案1】:

您可以使用带有颜色代码的printf 打印它:

find . '(' \
     '(' -type d -printf "\033[31m" ')' -o \
     '(' -type f -printf "\033[32m" ')' -o \
                 -printf "\033[33m" \
      ')' -printf "%f""\033[39m""\n"

【讨论】:

  • 如何在我的树输出格式中使用它?
  • How do I fit this within my tree output formatting?find 修改为%p,然后修改sed 脚本以考虑颜色代码。您可以从grymoire.com/Unix/Sed.html 学习 sed,并在man find 找到有半好的参考。
  • 为什么不"%f\033[39m\n"
  • 化妆品,我喜欢在视觉上将颜色代码与字符串的其余部分分开,所以它是可见的。
猜你喜欢
  • 2015-07-15
  • 1970-01-01
  • 2019-05-06
  • 2021-12-23
  • 2014-06-05
  • 2018-07-22
  • 2011-04-20
  • 2019-12-22
  • 2016-01-10
相关资源
最近更新 更多