我编写了一个代码,以便它可以从文本文件中读取数据并弹出IP地址并在VBScript中发送电子邮件。
代码成功运行。
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Your File Name Here.txt", ForReading)
strSearchString = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
Set colMatches = objRegEx.Execute(strSearchString)
If colMatches.Count > 0 Then
For Each strMatch in colMatches
Wscript.Echo strMatch.Value
Next
End If
需求已经更改,并且需要在unix服务器中运行相同的进程,因此我必须编写VBScript以便所有上述操作都在unix中进行。
答案 0 :(得分:2)
不,你不能在Linux / Unix上运行VBScript。您需要使用这些平台上可用的语言重新实现脚本,例如shell(bash,ksh,(t)csh,...),Perl,Python或Ruby。
由于您的脚本似乎是从文本文件中提取IP地址,我说在这里您最好选择shell脚本。在Linux发行版上,默认shell通常为bash
,因此我建议您从Bash Guide for Beginners开始。您正在寻找的工具是grep
。将它与参数-P
(Perl样式表达式)和-o
一起使用(仅显示匹配项):
grep -Po "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" /path/to/your.txt
此外,可以通过对点号段进行分组来缩短正则表达式,例如像这样:
grep -Po "\d{1,3}(\.\d{1,3}){3}" /path/to/your.txt
如果要从脚本运行此文件,该文件看起来应该如下所示:
#!/bin/sh
grep -Po "\d{1,3}(\.\d{1,3}){3}" /path/to/your.txt
shebang定义了应该使用哪个解释器来执行内容。