相关疑难解决方法(0)

从脚本输出中删除控制字符(包括控制台代码/颜色)

我可以使用“脚本”命令在命令行记录交互式会话。但是,这包括所有控制字符颜色代码。我可以使用“col -b”删除控制字符(如退格键),但找不到删除颜色代码的简单方法。

请注意,我想以正常方式使用命令行,所以不想在那里禁用颜色 - 我只想从脚本输出中删除它们。此外,我知道可以尝试并尝试找到一个正则表达式来解决问题,但我希望有一个更简单(更可靠 - 如果我在开发正则表达式时不知道代码怎么办?)解决方案。

要显示问题:

spl62 tmp:脚本
脚本启动,文件是打字稿
spl62 lepl: ls
add-licence.sed build-example.sh commit-test push-docs.sh
add-licence.sh build.sh delete-licence.sed setup.py
asn build-test.sh delete-licence.sh src
build-doc.sh 清理 doc-src test.ini
spl62 lepl:退出
脚本完成,文件是打字稿
spl62 tmp: cat -v 打字稿
脚本开始于 2011 年 6 月 9 日星期四上午 09:47:27 CLT
spl62 lepl: ls^M
^[[0m^[[00madd-licence.sed^[[0m ^[[00;32mbuild-example.sh^[[0m ^[[00mcommit-test^[[0m ^[[00;32mpush-docs.sh] ^[[0米^米
^[[00;32madd-licence.sh^[[0m ^[[00;32mbuild.sh^[[0m ^[[00mdelete-licence.sed^[[0m ^[[00msetup.py^[[0m^M]
^[[01;34masn^[[0m ^[[00;32mbuild-test.sh^[[0m ^[[00;32mdelete-licence.sh^[[0m ^[[01;34msrc^[[0m^M]
^[[00;32mbuild-doc.sh^[[0m ^[[00;32mclean^[[0m ^[[01;34mdoc-src^[[0m ^[[00mtest.ini^[[0m^M]
spl62 lepl: 退出^M

脚本完成于 2011 年 6 月 9 日星期四上午 09:47:29 …

colors terminal text-processing escape-characters typescript

80
推荐指数
6
解决办法
6万
查看次数

使用 grep 时屏幕上出现奇怪的符号?

./trans ... 命令输出显示转义码

知道是什么原因造成的吗?在不使用 grep 的情况下,唯一显示的是 ISO 代码和空白空间。

使用的软件

命令: ./trans --id --input /path/to/txt | grep ISO | grep [a-z]

root@box /test # alias grep
alias grep='grep --color=auto'
root@box /test # type grep
grep is aliased to `grep --color=auto'
Run Code Online (Sandbox Code Playgroud)

正常输出:

带有可读文本和 URL 的 trans 命令输出

grep terminal pipe escape-characters

12
推荐指数
1
解决办法
2544
查看次数

Bash:用空格比较两个字符串

我正在尝试编写一个 bash 脚本,该脚本运行命令并将结果与​​另一个字符串进行比较。

#!/bin/bash -x

STATUS=`/root/setup_ha show --password-file=/root/password | grep ">HA State" | awk '{print $3}' |  cut -c 2-`

TEST=`echo $STATUS`
if [[ "$TEST" == "ON Master" ]];
then echo CLUSTER CRITICAL
else
  echo CLUSTER OK MASTER
fi
Run Code Online (Sandbox Code Playgroud)

由于原始字符串在两行上,我在新变量 TEST 中回显它。New 变量在一行中包含命令的输出。

这是 Bash 调试输出:

++ /root/setup_ha show --password-file=/root/password
++ grep '>HA State'
++ awk '{print $3}'
++ cut -c 2-
+ STATUS='ON
Master'
++ echo 'ON' Master
+ TEST='ON Master'
+ [[ ON Master == \O\N\ \M\a\s\t\e\r ]] …
Run Code Online (Sandbox Code Playgroud)

bash string

5
推荐指数
1
解决办法
3万
查看次数

用于“表格化”包含 ANSI 转义码的输入数据的 shell 工具

我的输入包含我想要制表的 ANSI 颜色代码。我希望输出保持彩色,因此表格输出应保持 ANSI 颜色代码。因此,天真地剥离它们不符合我的要求。

例如,对于这个输入,

\033[0;32;1mgreen_apple\033[0m 1 100
orange 20 19
pineapple 1000 87
avocado 4 30
Run Code Online (Sandbox Code Playgroud)

我期望的输出类似于

green_apple 1    100
orange      20   19
pineapple   1000 87
avocado     4    30
Run Code Online (Sandbox Code Playgroud)

在上面的输出中,“green_apple”应该根据输入的颜色代码(即绿色)着色。我想知道如何做到这一点。

我试过 column,但它不处理 ANSI 代码。的输出

echo '\033[0;32;1mgreen_apple\033[0m 1 100
orange 20 19
pineapple 1000 87
avocado 4 30' | column -t
Run Code Online (Sandbox Code Playgroud)

不幸的是

green_apple  1     100
orange                  20    19
pineapple               1000  87
avocado                 4     30
Run Code Online (Sandbox Code Playgroud)

注意非制表。

shell colors text-processing tabulation columns

5
推荐指数
1
解决办法
836
查看次数