使用python将每组两行数据合并一行

1、使用场景

将有规律的每组(一组2行)的单数行和双数行合并为一行,以空格分割。

比如使用pssh批量得出的结果,想让ip行和结果行合并为一行(前提如上所述)

复制代码
[root@k8s-master1 tmp]# pssh -h iplist -i 'hostname'
[1] 18:12:42 [SUCCESS] 192.168.164.30
k8s-node1
[2] 18:12:42 [SUCCESS] 192.168.164.40
k8s-node2

把多余的行给删除掉,保留只有一个ip行和你想要的结果行,这利用grep -v 能轻易实现,然后再用下面的脚本去合并结果就行了

2、python脚本

复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 将有规律的每组(一组2行)的单数行和双数行合并为一行,以空格分割
# 将你的pssh得到的数据放到result.txt中,然后运行本脚本。如果单数行不是[开头,则会报错提示你修改,修改好之后再重新运行本脚本

file_path = './result.txt'   # pssh生成的有规律的1行ip一行结果。如果不是这样有规律的需要整理。
x_index = 1

with open(file_path, encoding='utf-8') as file:
    content = file.read()
    for i in content.splitlines():
        if x_index % 2:
            if not i.startswith("["):    # 判断单行的开头如果不是以"["就说明有问题,程序自动退出。
                print(f"************Line {x_index} ERROR****************")
                exit(1)
            print(i, end=" ")    # 打印单数行后用空格结尾,便于连接双数行
        else:
            print(i)  # 打印双数行,自动换行
        x_index += 1

注:将你的批量结果保存在和本脚本同一目录下,且文件名为result.txt,然后执行本脚本即可打印出结果

3、python脚本输出结果示例

复制代码
[1] 18:12:42 [SUCCESS] 192.168.164.30 k8s-node1
[2] 18:12:42 [SUCCESS] 192.168.164.40 k8s-node2
相关推荐
草莓熊Lotso2 分钟前
【Redis 初阶】Hash 类型深度解析:结构化数据存储的最优解
linux·网络·数据库·redis·tcp/ip·缓存·哈希算法
jieshenai3 分钟前
Shell 脚本如何定位项目根目录——从一个 8 行的小脚本讲起
linux·运维
欧叶冲冲冲8 分钟前
uv Python 环境管理笔记
笔记·python·uv
很楠爱上10 分钟前
从“AI 看合同”到可举证的合同决策链:CounterClause(对薄) 的架构设计与工程实践
人工智能·经验分享·python·学习·agent
这就是佬们吗10 分钟前
治幻觉,先治检索:RAG 系统防幻觉的完整工程指南
python·langchain·embedding
Java后端的Ai之路11 分钟前
02、Python普通工厂模式
开发语言·人工智能·python·设计模式·普通工厂模式
迷途之人不知返11 分钟前
自制第一个Linux小程序——进度条
linux
Dontla12 分钟前
VSCode Python扩展自动加载.env环境变量机制(Python插件)python.terminal.useEnvFile
ide·vscode·python
zbyyd15 分钟前
深入理解 Linux 文件 IO 与目录 IO:系统调用与库函数的本质区别
linux·c语言
码云骑士21 分钟前
115-多模态大模型-GPT-4V-Gemini-Qwen-VL-能力全景
python