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

时间:2015-01-20 16:10:45

标签: string bash text

我有一个很大的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从每个Case的第一行获取4位数字,并从相应的行向下获取IP地址。每个Case的行数相同。 我想使用两位信息来编译一个文件,每行包含这样的DNS记录条目:

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

我试图使用grep和gawk但是,即使我可以隔离其中一个或另一个,我也无法将它们放在一起。

1 个答案:

答案 0 :(得分:0)

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

  1. 你想要grep两个表达式(两个不同)。线 grep 无法实现这一点,因为 grep 仅限于行。如果您想在行之间找到表达式,可以使用 sed
  2. 您想要合并这些表达
  3. 解决方案:

    使用类似的东西

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

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

    您也可以使用 sed