高亮显示不一致

先准备好测试文件

[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* }*//*** 代码中的类名、方…

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 …

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

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

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* }*//*** 代码中的类名、方法名、参…

【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 的优化建议,极大地提升…

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

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

npm修改镜像源

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

前端工程化之:webpack2-2(内置插件)

目录 一、内置插件 1.DefinePlugin 2.BannerPlugin 3.ProvidePlugin 一、内置插件 所有的 webpack 内置插件都作为 webpack 的静态属性存在的,使用下面的方式即可创建一个插件对象: const webpack require("webpack")new webpack.插件…

浅谈bypass Etw

文章目录 c#ExecuteAssemblybypass etw c# loader 一种是通过反射找到指定空间的类中method进行Invoke 另一种是通过EntryPoint.Invoke加载 反射加载 Assembly.Load()是从String或AssemblyName类型加载程序集,可以读取字符串形式的程序集 Assembly.LoadFrom()从指定…

JVM内存分析与优化

JVM内存模型分析 在minor gc过程中对象挪动后,引用如何修改? 对象在堆内部挪动的过程其实是复制,原有区域对象还在,一般不直接清理,JVM内部清理过程只是将对象分配指针移动到区域的头位置即可,比如扫描s0区…

零基础学编程从哪里入手,在学习中可以线上会议答疑解惑

一、前言 零基础学编程可以先从容易学的语言入手,比如中文编程,然后再学其他编程语言则会比较轻松,初步掌握编程思路。很多IT人士一般学2到3种编程语言。 今天给大家分享的中文编程开发语言工具资料如下: 编程入门视频教程链接…

速度规划:s形曲线应用(变速 停车)opencv c++显示(3)

理论篇 先看该篇,这里沿用了里面的变量。 应用推导篇 分为变速和停车两部分(字迹潦草,可结合代码看) 代码篇 变速函数入口: velocityPlanner vp; vp.SetParameters(0, 1);停车函数入口: ParkingVelo…

uniCloud ---- schema2code

目录 schema2code有两种方式 label属性 component属性 group属性 应用 DB Schema里有大量的信息,其实有了这些信息,前端将无需自己开发表单维护界面,uniCloud可以自动生成新增、修改、列表、详情的前端页面,以及admin端的列…

电脑小白必看:如何备份电脑系统?

电脑系统坏了怎么办?扛着自己的笔记本或是台式机的主机去电脑修理店花几十上百重装系统?或是自己用光盘或是U盘启动盘花费数小时重新安装系统?还在为系统问题发愁吗?今天,小编给大家一个简单的方法,让你免去…

ERP 系统架构的设计与实践总结

企业资源计划(ERP)系统是一种集成多个业务功能的综合性软件解决方案。在设计和实践 ERP 系统架构时,需要考虑诸多因素,以确保系统能够满足企业的需求,并提供高效、可靠、安全的服务。本文将介绍一些关键的设计原则和实…