相关疑难解决方法(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万
查看次数

了解 Return、Enter 和 stty icrlf

在 Ubuntu/gnome-terminal 中,如果我运行:

$ stty -icrnl
Run Code Online (Sandbox Code Playgroud)

然后启动 GHC 交互环境(一个 Haskell 控制台):

$ ghci
Run Code Online (Sandbox Code Playgroud)

然后按Return不提交行;然而,Enter确实如此。

但是,与:

$ stty icrnl
Run Code Online (Sandbox Code Playgroud)

双方ReturnEnter提交该行。

我不太理解这种行为;Return在这两种情况下肯定会提交换行符吗?

terminal stty

6
推荐指数
2
解决办法
4701
查看次数