Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Bash:在空白处拆分一行_Regex_Bash - Fatal编程技术网

Regex Bash:在空白处拆分一行

Regex Bash:在空白处拆分一行,regex,bash,Regex,Bash,我正试图从testssl扫描的结果中切掉一行来格式化报告。我想把这条线切掉,只做上半场,看起来就像在一个标签上裂开一样 例如: Secure Client-Initiated Renegotiation not vulnerable (OK) 我需要在我的bash脚本grep、sed、awk中找到一种方法,不管是什么,都可以把第一部分的语言提取出来。我想,诀窍在于testssl有很多测试,所以我需要一些可以工作的东西,无论第一部分是什么,我都不能连接到任何实际的单词,因为它们会发生变化

我正试图从testssl扫描的结果中切掉一行来格式化报告。我想把这条线切掉,只做上半场,看起来就像在一个标签上裂开一样

例如:

Secure Client-Initiated Renegotiation     not vulnerable (OK)
我需要在我的bash脚本grep、sed、awk中找到一种方法,不管是什么,都可以把第一部分的语言提取出来。我想,诀窍在于testssl有很多测试,所以我需要一些可以工作的东西,无论第一部分是什么,我都不能连接到任何实际的单词,因为它们会发生变化


任何帮助都将不胜感激

正如您所猜测的,您可以使用sed或awk之类的工具来实现此目的。但是,我们希望您能够以代码的形式提供一些努力来解决您的问题,下一次您可能会遇到什么问题?。无论如何,我要咬一口:

使用awk:

或使用sed:


注意:在您的情况下,用您的命令替换echo。

我最终使用了awk。目前,我正在使用:

awk-F'*''{print$1}'


这是在多个空格上拆分,并为我提供了实际发现的漏洞的第一个部分。

到目前为止您尝试了什么?这两组单词之间的间隔总是5个空格吗?我已经试过很多次了。我已经设法至少把它剥去,只是根据盒子的漏洞找到我需要的线条,但是把它剪成我需要的那一块却让我不知所措。下面是我用来实际获取我需要的部分的东西:grep-v not FILENAME | egrep-o.{0,42}VULNERABLE},它似乎至少只从有漏洞的行中抓取,忽略了从非到行开头的部分。现在,我正试图消除易受攻击的和尾随的空白。以下是文件的格式:通过openssl测试协议,SSLv2通过插座SSLv2未提供OK SSLv3未提供OK TLS 1提供测试漏洞Heartbleed CVE-2014-0160未提供vulnerable OK,超时CCS CVE-2014-0224不易受攻击正常安全重新协商CVE-2009-3555不易受攻击正常安全客户端启动的重新协商易受攻击不正常,潜在的DoS威胁…drat该评论似乎无法在粘贴上干净地处理格式,我看不到在问题上附加文件的选项。下面是一个项目页面上输出的示例:非常感谢!Drat…唉,看起来他们可能使用了空格,而不是实际的制表符来分隔字符串中的文本。这两个方法都像以前一样返回整个字符串。我会修改语法,看看是否能把它修改成正确的形状。老实说,我原以为这会演变成某种regex的炼狱。我仍在绞尽脑汁编写脚本来解决这些问题。我衷心感谢你的回应。
echo -e "Secure Client-Initiated Renegotiation\tnot vulnerable (OK)" |
awk -FS"\t" '{print $1}'
echo -e "Secure Client-Initiated Renegotiation\tnot vulnerable (OK)" |
sed -E 's/^([^\t]+)\t.*$/\1/'