Regex Bash:在空白处拆分一行
我正试图从testssl扫描的结果中切掉一行来格式化报告。我想把这条线切掉,只做上半场,看起来就像在一个标签上裂开一样 例如:Regex Bash:在空白处拆分一行,regex,bash,Regex,Bash,我正试图从testssl扫描的结果中切掉一行来格式化报告。我想把这条线切掉,只做上半场,看起来就像在一个标签上裂开一样 例如: Secure Client-Initiated Renegotiation not vulnerable (OK) 我需要在我的bash脚本grep、sed、awk中找到一种方法,不管是什么,都可以把第一部分的语言提取出来。我想,诀窍在于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/'