如何用 word 对包含文件的目录进行着色不正确里面?
例子:
我有 3 个包含日志文件的目录。
dir_a/log
dir_b/log
dir_c/log
dir_c中的文件log包含word不正确 是否可以得到如下所示的彩色 ls 输出?
dir_a --> blue
dir_b --> blue
dir_c --> red
答案1
这应该完成这项工作:
文件夹内的文件和给定文件夹内的文件内的文本中的“INCORRECT”:
SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do
DIR_CHECK=$(grep INCORRECT $i)
[[ "$DIR_CHECK" =~ "INCORRECT" ]] \
&& echo -e "\e[00;31m$i\e[00m" \
|| echo -e "\e[00;32m$i\e[00m"
done
“给定文件夹中的文件夹内的文件内的文本不正确”:
SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do
DIR_CHECK=$(grep INCORRECT $i)
[[ "$DIR_CHECK" =~ "INCORRECT" ]] \
&& echo -e "\e[00;31m$i\e[00m" \
|| echo -e "\e[00;32m$i\e[00m"
done
给定文件夹中的文件夹和文件名称为“INCORRECT”:
SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do
DIR_CHECK=$(echo $i | grep INCORRECT)
[[ "$DIR_CHECK" =~ "INCORRECT" ]] \
&& echo -e "\e[00;31m$i\e[00m" \
|| echo -e "\e[00;32m$i\e[00m"
done
给定文件夹中的文件夹名称为“INCORRECT”:
SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do
DIR_CHECK=$(echo $i | grep INCORRECT)
[[ "$DIR_CHECK" =~ "INCORRECT" ]] \
&& echo -e "\e[00;31m$i\e[00m" \
|| echo -e "\e[00;32m$i\e[00m"
done
答案2
不,至少在 ls 当前的实现中是这样。您最多可以根据文件类型(图像、录音等,基于文件名掩码)、条目类型(文件、目录、套接字等)以及部分权限(可执行标志)来选择颜色。您无法为目录应用颜色,甚至取决于它包含的文件,更不用说内容这些文件。