linux - 替换 bash 返回输出中的字符

标签 linux bash replace

我尝试运行此命令以从metasploit漏洞利用目录中grep利用MS-*

locate -r "\.rb$" | xargs grep "MSB" | grep metasploit | grep exploit | grep smb | awk '{print $3,$4}'

我得到了这个结果:

grep: /usr/share/doc/ruby-http-parser.rb: Is a directory

'MS17-010'],

'MSB', 'MS03-049'

'MSB', 'MS04-007'],

'MSB', 'MS04-011'

'MSB', 'MS04-031'],

'MSB', 'MS05-039'

'MSB', 'MS06-025'

'MSB', 'MS06-025'

'MSB', 'MS06-040'

'MSB', 'MS06-066'],

'MSB', 'MS06-066'],

'MSB', 'MS06-070'

'MS07-029']

MS08-067),

'MSB', 'MS09-050'

如何从每行中删除此('MSB',')和('])

我需要这样的输出:

MS09-050

MS08-067

MS06-070

..

..

..

而且我还需要删除第一行( grep:/usr/share/doc/ruby-http-parser.rb: 是一个目录)

最佳答案

locate -r "\.rb$" | xargs grep -s "MSB" | grep metasploit | grep exploit | grep smb | awk '{print $3,$4}'|sed "s/[,')]//g" |sed "s/MSB //g"|sed "s/]//g"

说明:

  • sed "s/[,')]//g" - 从每行中删除 ')

  • sed "s/MSB//g"|sed "s/]//g" - 从每行中删除 MSB

  • sed "s/]//g" - 删除 ]

  • xargs grep -s "MSB" - grep 中的 -s 选项将抑制该输出的错误消息。

关于linux - 替换 bash 返回输出中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59609115/

相关文章:

bash - 如何使用 bash 修改版本号

regex - 在 Notepad++ 中查找和替换

replace - 如何替换Julia中字符串中的多个字符

c - 为什么这个 ptrace 错误?

python - sendmail成功,但python smtplib连接失败

linux - linux单个目录下文件太多怎么办?

linux - 管道中的多个 grep 在完成后不会终止

bash - 在每一行中搜索一个模式并将其附加到该行的末尾

bash - Dockerfiles中&&和 `set -ex`的区别

用于每月归档的 Linux Bash