大智慧如何给字符串输出不同颜色的字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大智慧如何给字符串输出不同颜色的字段相关的知识,希望对你有一定的参考价值。

方法如下:
"\033[显示方式;字背景颜色;字体颜色m字符串\033[0m"

例如:
echo -e "\033[4;41;34m something here \033[0m" #其中4代表下划线方式来显示, 41代表底色为深红, 34是代表字的颜色为蓝色

echo -e "\033[1;43;37m something here \033[0m" #其中1代表高亮方式来显示, 43代表底色为黄色, 37是代表字的颜色为白色
显示方式:

0(默认值) 1(高亮) 22(非粗体) 4(下划线) 24(非下划线) 5(闪烁) 25(非闪烁) 7(反显) 27(非反显)

字背景颜色范围:40~49
40:黑 41:深红 42:绿43:黄色 44:蓝色 45:紫色 46:深绿 47:白色

字颜色:30~39
30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色
参考技术A 1. 使用ColorStateList类
ColorStateList redColors = ColorStateList.valueOf(0Xffff0000);
SpannableStringBuilder spanBuilder = spanBuilder.setSpan(new TextAppearenceSpan(null, 0, 0, redColors, null),4, 10,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
2. 使用html
String temp = “name:
<font color = \”red\”>hello<small><title><b>activeBalance</b></title></small></font>”;
Html.fromHtml(temp)
参考技术B 1. 使用ColorStateList类

ColorStateList redColors = ColorStateList.valueOf(0Xffff0000);

SpannableStringBuilder spanBuilder = spanBuilder.setSpan(new TextAppearenceSpan(null, 0, 0, redColors, null),4, 10,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);

2. 使用Html类

String temp = “name:<br /><font color = \”red\”>hello<small><title><b>activeBalance</b></title></small></font>”;

Html.fromHtml(temp);

如何避免作为 sql 查询输出的一部分返回的字符串值被拆分为 bash/shell 脚本中数组中的不同字段

【中文标题】如何避免作为 sql 查询输出的一部分返回的字符串值被拆分为 bash/shell 脚本中数组中的不同字段【英文标题】:How to avoid string value returned as part of sql query output being split into different fields in array in bash/shell script 【发布时间】:2021-11-30 14:24:39 【问题描述】:

我的 sql 查询的输出有多个列,并且包含包含空格的字符串值。我需要编写 bash 脚本,其中我必须将值读入变量,然后在脚本中进一步使用它,并将它们插入另一个数据库。

当我将输出存储到数组中时,字符串值会根据空间进行拆分并存储到数组中的不同索引中。我如何在 bash 脚本中处理这种情况。

CMD="SELECT * FROM upload where upload_time>='2020-11-18 00:19:48' LIMIT 1;"
output=($(mysql $DBCONNECT --database=uploads -N --execute="$CMD"))
echo $output[9]

Output:
version test_id upload_time parser_result 25 567 2020-11-18 00:19:48 <p1>box crashed with exit status 0</p1>

上传时间“2020-11-18 00:19:48”存储在两个索引中。 更成问题的是“parser_result”值,它是字符串。 '&lt;p1&gt;box crashed with exit status 0&lt;/p1&gt;' 存储在不同的索引中,根据空间进行拆分。

$output[8] contains '<p1>box'
$output[9] contains 'crashed'

数据库非常庞大,我需要解析其中的每一行。 由于字符串值可以是任何我无法想出通用代码的东西。处理这种情况的最佳方法是什么。我是第一次使用 bash 脚本!!我必须使用 bash 脚本,因为该脚本将作为 docker 容器内的 cron 作业运行。

【问题讨论】:

【参考方案1】:

字段由 TAB 分隔。将其用作您的 $IFS 来解析结果。

IFS=$'\t' output=($(mysql $DBCONNECT --database=uploads -N --execute="$CMD"))
echo "$output[9]"

如果$DBCONNECT 包含用空格分隔的选项,您需要分两步执行此操作,因为它也使用$IFS 进行拆分。

result=$(mysql $DBCONNECT --database=uploads -N --execute="$CMD")
IFS=$'\t' output=($result)
echo "$ouptut[9]"

【讨论】:

谢谢。但是您建议的更改低于错误。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2) 请参阅***.com/questions/13365553/…,了解将多个命令参数放入像$DBCONNECT 这样的变量中的正确方法,而不是用空格分隔它们。 非常感谢它确实解决了我的问题。谢谢!!!!!!

以上是关于大智慧如何给字符串输出不同颜色的字段的主要内容,如果未能解决你的问题,请参考以下文章

大智慧安卓手机版,触屏手机怎样放大k线图?

智慧农业认养大数据平台有哪些优势?

“区块链+大数据”如何构建智慧城市生态圈

“区块链+大数据”如何构建智慧城市生态圈

实时监测 大数据分析 泰达智慧城市大脑 助力开发区“智慧抗疫”

字符串比较--小问题大智慧