高亮显示不一致

先准备好测试文件

[root@node4 ~]# cat 2.1
No.     Table Name     Src Count    Des Count    Result
1       sbtest1        100          100          PASS
2       sbtest2        200          300          NOTPASS
3       sbtest3        150          150          PASS
4       sbtest4        400          401          NOTPASS

如图:
在这里插入图片描述

准备好脚本

解决一:

#!/bin/bash# 设定颜色
RED_BACKGROUND='\033[41m'  # 红色背景
WHITE='red\033[0m'         # 白色字体
NO_COLOR='\033[0m'         # 重置颜色# 文件名
FILE_NAME="2.1"# 读文件并进行处理=
awk -v red1="$RED_BACKGROUND" -v white="$WHITE" -v nc="$NO_COLOR" 'BEGIN {FS="[ ]+"; OFS=" | "}
{if (NR==1) {# 打印标题行print $0;} else {# 对比第三和第四列if ($3 != $4) {# 如果不同,改变输出颜色print $1, $2, $3, $4, red1 whit$5nc;} else {# 如果相同,保持原样print $1, $2, $3, $4, $5  ;}}
}' $FILE_NAME

解决二:

awk 'BEGIN {FS="[ ]+";   # 字段分隔符设置为竖线加空格OFS=" | ";    # 输出字段分隔符同上RED="\033[1;31m";    # 设置红色高亮的ANSI码GREEN="\033[1;32m";  # 设置绿色高亮的ANSI码RESET="\033[0m";     # 重置颜色设置的ANSI码
}
NR==1 {print $0; next;}  # 打印标题行并继续
{if ($3 != $4) { # 比较“Src Count”和“Des Count”列print $1, $2, $3, $4, RED $5 RESET; # 如果不相同,打印红色高亮的“Result”} else {print $1, $2, $3, $4, GREEN $5 RESET; # 如果相同,打印绿色高亮的“Result”}
}' 2.1

可以通过以下命令赋予执行权限:

chmod +x 1.sh

然后再次运行脚本:

./1.sh

运行结果:
在这里插入图片描述

如果继续遇到问题,请确认以下几点:

  • 您的终端是否支持ANSI颜色代码。可以通过简单的echo语句测试,比如 echo -e "\033[41mRed Background\033[0m",这应该输出一个红色背景的文本。

  • 脚本中颜色代码的使用是否正确。请注意,颜色代码前应使用反斜杠(\)而不是正斜杠(/),并且颜色代码周围不能有多余的空格或字符。

  • 确保颜色代码对应的是bash shell的语法。如果您使用的是不同的shell,如zsh或fish,颜色代码的语法可能略有不同。

  • 尝试不要在脚本中使用变量,而是直接在print语以排除变量传递问题。

  • 当使用颜色代码时,需要确保在ANSI颜色代码后面紧跟着文本内容。例如,red white $5 nc 这种使用方式是错误的,因为它将颜色代码和变量混淆在一起了。

  • 结果显示为 “redPASS” 和 “redNOPASS”,这是因为 white 变量包含了字符串 “red”,而不是实际的颜色代码。

在这份脚本中,注意到以下几点:

  • awk 命令中使用 redwhitenc 的方式,确保它们都紧跟着它们需要修饰的文本。
  • 在打印不同颜色时,确保文本紧随颜色代码之后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/671998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言每日一练 ——链表篇(三)

传送门 牛客面试笔试必刷101题 ---------------- 链表中的节点每k个一组翻转 题目以及解析 题目 解题代码及解析 package main import _"fmt" import . "nc_tools" /** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的类名、方…

python数据容器之字典相关的操作

字典是Python中常用的数据容器之一,它可以存储键值对,其中键是唯一且不可变的,值可以是任意类型的数据。以下是一些字典相关的操作: 创建字典: my_dict {} # 创建空字典 my_dict2 {key1: value1, key2: value2} # …

STM32 硬件随机数发生器(RNG)

STM32 硬件随机数发生器 文章目录 STM32 硬件随机数发生器前言第1章 随机数发生器简介1.1 RNG主要特性1.2.RNG应用 第2章 RNG原理框图第3章 RNG相关寄存器3.1 RNG 控制寄存器 (RNG_CR)3.2 RNG 状态寄存器 (RNG_SR)3.3 RNG 数据寄存器 (RNG_DR) 第3章 RNG代码部分第4章 STM32F1 …

安装flash-attention失败的终极解决方案

安装大语言模型的时候,有时候需要安装flash-attention来加速。比如说通义千问里的安装方法: git clone https://github.com/Dao-AILab/flash-attention cd flash-attention && pip install . 我们经常安着安着就卡住了,比如说下面的…

三月济南举办2024第八届生物饲料高质量发展论坛

饲料工业发展空间大,产量持续增长,品质与质量也在不断提高,饲料工业是支撑现代畜牧水产养殖业发展的基础产业,是关系到城乡居民动物性食品供应的民生产业。“十四五”时期是我国由全面建设小康社会向基本实现社会主义现代化迈进的…

(Note)子供向 Children‘s Oriented

子供向是一个来自日语的词汇,意指专门为儿童设计的作品或内容。 这个概念强调作品的受众群体主要是儿童,但也并不排除其他年龄层的观众。在动画领域,子供向通常指的是面向儿童的动画作品,这些作品的内容设计得既适合儿童欣赏&…

Xampp中Xdebug的安装使用

工欲善其事,必先利其器 XDebug简介 XDebug 是一个用于 PHP 的调试和性能分析工具。它提供了一系列功能,帮助开发者在开发和调试 PHP 应用程序时更加高效。 以下是 XDebug 的一些主要特性和功能: 调试功能: 断点调试:…

CSS的动画

CSS的动画 在本节,我们将学习keyframes动画。 1. 动画的基本使用 1. 定义动画 定义动画有两种写法: 简单定义方式 keyframes 动画名 {/* from代表初始状态 */from {/*property1:value1*/transform: translate(0%);}/* to代表结束状态 */to {transfor…

海外社媒运营必学:优化Instagram SEO的必学策略

Instagram SEO 是优化 Instagram 内容以使其在平台搜索结果中被发现的做法。如果你希望你可以更快的让你的Ins获得流量,做好SEO就成功了一半。Instagram 搜索结果包括相关内容、帐户、音频、主题标签和地点,下面为你总结10个策略技巧! 一、In…

Go语言每日一练链表篇(二)

传送门 牛客面试笔试必刷101题 ---------------- 链表内指定区间反转 题目以及解析 题目 解题代码及解析 package main import _"fmt" import . "nc_tools" /** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的类名、方法名、参…

【机器学习】Ubuntu系统下CUDA驱动卸载及重装

目录 背景 驱动卸载 驱动安装 CUDA驱动安装 安装nvidia-smi 背景 这里包含显卡驱动和CUDA驱动,在如下场景下,我们需要卸载显卡驱动并重新安装。 在某些情况下需要对显卡驱动进行升级某些情况下(如重启,或者调整系统配置等&a…

【Leetcode】2641. 二叉树的堂兄弟节点 II

文章目录 题目思路代码结果 题目 题目链接 给你一棵二叉树的根 root ,请你将每个节点的值替换成该节点的所有 堂兄弟节点值的和 。 如果两个节点在树中有相同的深度且它们的父节点不同,那么它们互为 堂兄弟 。 请你返回修改值之后,树的根 …

Node.js版本管理工具之_Volta

Node.js包管理工具之_Volta 文章目录 Node.js包管理工具之_Volta1. 官网1. 官网介绍2. 特点1. 快( Fast)2. 可靠(Reliable)3. 普遍( Universal) 2. 下载与安装1. 下载2. 安装3. 查看 3. 使用1. 查看已安装的工具包2. 安装指定的node版本3.切换项目中使用的版本 1. 官网 1. 官网…

利用LLM大模型生成sql的深入应用探究

Chat2DB 是一款有开源免费的多数据库客户端工具,和传统的数据库客户端软件Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力,能够将自然语言转换为 SQL,也可以将 SQL 转换为自然语言,可以给出研发人员 SQL 的优化建议,极大地提升…

nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析(下)

目录 7. 实现一个UDP健康检测功能7.1 功能定义7.2 定义一个新的健康检测类型7.3 增加udp特定的健康检测需要的配置指令7.3.1 ngx_http_upstream_check_srv_conf_s结构体的扩展7.3.2 check_udp_send的实现7.3.3 check_udp_expect的实现7.3.4 16进制解码代码的实现7.4 ngx_http_u…

【C语言】(18)内存操作函数

内存操作函数在C语言中是用来进行内存操作的一系列标准库函数&#xff0c;这些函数包含在<string.h>头文件中。 1.复制内存区域 void *memcpy(void *dest, const void *src, size_t n); 功能&#xff1a;从源src的位置开始复制n个字节到目标dest的位置。参数&#xff…

【C语言】GtkStack及标签页的关闭

一、GtkStack GtkStack 是 GTK&#xff08;GIMP Toolkit&#xff09;库中的一个容器类&#xff0c;用于管理多个子窗口部件&#xff08;widgets&#xff09;&#xff0c;但在任何给定时间内只显示其中一个。GtkStack 提供了一种在同一个空间位置显示不同内容的方式&#xff0c…

「优选算法刷题」:只出现一次的数字

一、题目 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 示例 1 &#xff1a; 输入…

npm修改镜像源

背景&#xff1a;切换npm镜像源是经常遇到的事&#xff0c;下面记录下具体操作命令 1. 打开终端运行"npm config get registry"命令来查看当前配置的镜像源 npm config get registry2. 修改成淘宝镜像源"https://registry.npmjs.org/" npm config set re…

嵌入式硬件工程师与嵌入式软件工程师

嵌入式硬件工程师与嵌入式软件工程师 纯硬件设备与嵌入式设备 纯硬件设备是指内部不包含微处理器&#xff0c;无需烧写软件就能够运行的电子设备。如天线、老式收音机、老式电视机、老式洗衣机等。这类设备通常功能简单&#xff0c;易于操作&#xff0c;用户通常只需要打开电…