在测试文件的 Sections 中找到两个字符串并将它们组合成一行

Find two strings in Sections in a test file and combine them into a single line

我有一个很大的 vbs 文件,里面有很多这样的案例:

Case 1750 'School Name  
For Each Folder in SubFolders
    FolderName = Folder.Name 
    If ((FolderName <> "All Users") AND (FolderName <> "Public")) then
        CreateDeepFolders ("C:\Users\" & FolderName & "\AppData\LocalLow\Sun\Java\Deployment\security\")
        Set MyFile = objFSO.CreateTextFile("C:\Users\" & FolderName & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites", True)
        MyFile.WriteLine("httpS://10.10.10.10/")
        MyFile.Close
    End If
Next
Set UrlLink = objShell.CreateShortcut("C:\Folders\Custodian Desktop\BAS.lnk")
UrlLink.TargetPath = "http://10.10.10.10/webstation/"
UrlLink.IconLocation = "C:\Windows\UI.ico"
UrlLink.Save
CopyLinkToFolders "C:\Folders\Custodian Desktop\BAS.lnk",3

我想使用 Bash 从每个案例的第一行获取 4 位数字,并从相应行的下方获取 IP 地址。每个 Case 的行数相同。 我想使用这两位信息来编译一个文件,其中每一行都有这样的 DNS 记录条目:

local-data: "1750.bas.domain.net. IN A 10.10.10.10"

我尝试过使用 grep 和 gawk,但是,即使我可以将其中的一个或另一个分开,我也无法将它们放在一起。

我没有完全理解你的问题,这是我的理解:

  1. 您想 grep 两个表达式(两个不同的表达式)。线条 这对于 grep 是不可能的,因为 grep 仅限于行。如果你想在行之间找到表达式,你可以使用 sed.
  2. 您想组合这些表达式

解决方案:

使用这样的东西

var1=`grep...` (for the case number)
var2=`grep....` (for the ip)

然后您可以将 var1 与 var2 结合使用 var1="$var1 $var2" 或以您想要的任何其他方式使用它。

你也可以使用sed.