【发布时间】:2021-12-15 22:46:37
【问题描述】:
la() {
ls -lhAXF "$@" | awk '
BEGIN {
FPAT = "([[:space:]]*[^[:space:]]+)";
} {
$1 = "\033[1m" "\033[31m" $1 "\033[0m";
$2 = "\033[1m" "\033[32m" $2 "\033[0m";
$3 = "\033[1m" "\033[33m" $3 "\033[0m";
$4 = "\033[34m" $4 "\033[0m";
$5 = "\033[1m" "\033[35m" $5 "\033[0m";
$6 = "\033[1m" "\033[36m" $6 "\033[0m";
$7 = "\033[1m" "\033[37m" $7 "\033[0m";
$8 = "\033[1m" "\033[33m" $8 "\033[0m";
print
}'
}
这将使 ls -lhAXF 的输出着色 如何使用正则表达式将颜色应用于特定类型的项目,例如我希望文件夹为绿色、.config 文件夹为红色、常规文件为蓝色或类似的。
文件夹 - 匹配在单词末尾包含 '/' 的 $9 列 隐藏文件夹 - 匹配包含 '.' 的 $9 列在单词的开头 常规文件 - $9 列中的其余部分不匹配
如何将正则表达式应用于 awk 中的特定列? 我正在使用 Debian 11
【问题讨论】: