代码之家  ›  专栏  ›  技术社区  ›  Karn Kumar

如果该行的starts with加号和下一行以Solaris开始,则加入该行

  •  0
  • Karn Kumar  · 技术社区  · 6 年前

    文件中的数据如下所示,只是在寻找想法。。

    我问这个问题是因为就我上面展示的模式而言,数据并不一致。

       ++++++++ host01 ++++++++
                                  Solaris 10 10/08 s10s_u6wos_07b SPARC
       ++++++++ host02 ++++++++
                                  Solaris 10 10/08 s10s_u6wos_07b SPARC    
        ++++++++ host21 ++++++++
        ssh: connect to host host011 port 22: Connection timed out
        ssh: connect to host host012 port 22: Connection timed out
    

    #!/grid/common/pkgs/python/v3.6.1/bin/python3
    stat = ""
    with open("sunfor", mode="r") as f:
        for line in f:
            line = line.strip()
            if stat.startswith("+") and line.endswith("SPARC"):
                print(stat.strip())
                print(line)
    

    甚至尝试过。。

    #!/grid/common/pkgs/python/v3.6.1/bin/python3
    with open("sunfor", mode="r") as f:
        for line in f:
            line = line.strip()
            if line.startswith("+") and line.startswith("Solaris"):
                print(line)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Any Moose    6 年前

    通过将stat设置为最后一行,它现在可以正确地进行比较。 然后使用加号将结果打印为concat

    #!/grid/common/pkgs/python/v3.6.1/bin/python3
    stat = ""
    with open("sunfor", mode="r") as f:
        for line in f:
            line = line.strip()
            if stat.startswith("+") and line.endswith("SPARC"):
                print(stat.strip()+line)
            stat = line
    

    结果

    SolardSudioPosialSudioStudio Solaris Solaris 10 Solaris 10 / 08 S10SU-U6WOS007SPARC