相关疑难解决方法(0)

如何从python中的字符串中删除ANSI转义序列

这是我的字符串:

'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
Run Code Online (Sandbox Code Playgroud)

我正在使用代码从SSH命令检索输出,我希望我的字符串只包含'examplefile.zip'

我可以用什么来删除额外的转义序列?

python string escaping ansi-escape

58
推荐指数
4
解决办法
4万
查看次数

领先的美元符号如何影响Bash中的单引号?

我需要将一个字符串传递给程序作为Bash CLI中的参数,例如

program "don't do this"
Run Code Online (Sandbox Code Playgroud)

该字符串可能包含任何字符,如'$','\'等等,我不希望Bash做任何修改.所以我考虑使用单引号.

但是以下不起作用:

 program 'don\'t do this'            //escape doesn't work in single quote
Run Code Online (Sandbox Code Playgroud)

虽然以下两个工作:

 program $'dont\'t do this'          //seems fine, but any other side effects?
 program 'dont'\''do this'           //breaking into 3 parts
Run Code Online (Sandbox Code Playgroud)

第一种方法似乎更好,因为它获得前修改以下(把美元符号在前面,并替换每\到\\),但我不知道还有什么美元符号可能会做.

我真的用谷歌搜索了这个,但我找不到我需要的东西......

bash quotes double-quotes single-quotes

54
推荐指数
2
解决办法
2万
查看次数

仅按名称列出 Gitlab 运行者

我正在尝试获取仅包含 gitlab 运行者姓名的列表。

所以输出gitlab-runner list 2>&1是:

Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
default_runner                                      Executor=shell Token=251cda361f983e612b27381e2f73ad URL=http://10.6.20.230
test runner                                         Executor=shell Token=86ab70918fc87c8a8d3a57c21457fb URL=http://10.6.20.230
Run Code Online (Sandbox Code Playgroud)

请注意,跑步者的姓名中可以包含空格。

所以我尝试了以下方法:

gitlab-runner list 2>&1 | awk -F'Executor' '{if(NR>1)print $1}'这给了我几乎我想要的东西(除了我需要删除的尾随空格)。

default_runner
test runner
Run Code Online (Sandbox Code Playgroud)

但是,如果我将字段分隔符更改为Executor=希望使其更加明确,则它不再起作用。它返回整行。

$ gitlab-runner list 2>&1 | awk -F'Executor=' '{if(NR>1)print $1}'
default_runner                                      Executor=shell Token=251cda361f983e612b27381e2f73ad URL=http://10.6.20.230
test runner                                         Executor=shell Token=86ab70918fc87c8a8d3a57c21457fb URL=http://10.6.20.230
Run Code Online (Sandbox Code Playgroud)

我尝试过逃避它,但Executor\=没有成功。如何在分割中包含等号?

编辑:

如果我取其中一行并将其回显到 awk 中,它就会起作用

$ echo "test runner                                         Executor=shell Token=86ab70918fc87c8a8d3a57c21457fb URL=http://10.6.20.230" | awk -F'Executor=' '{print $1}'
test runner
Run Code Online (Sandbox Code Playgroud)

另一件需要注意的事情是,无论出于何种原因,gitlab-runner list …

bash awk gitlab-ci-runner

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