在多线程API输出文本中提取含i-*的有效SSH error行
我来帮你搞定这个多线程输出的提取问题!针对你给出的需求,我整理了两种实用的处理方式,不管你喜欢用命令行还是Python脚本都能轻松实现:
命令行快速处理方案
如果你的输出内容保存在文件(比如input.txt)里,可以用sed+grep+awk的组合命令一步到位:
sed 's/\r/\n/g' input.txt | grep "SSH error" | grep -v "None" | awk '{for(i=3;i<=NF;i++) if($i ~ /^i-/) print $i}'
各部分作用拆解:
sed 's/\r/\n/g':把输出里的^M(Windows回车符\r)替换成正常换行,让每个SSH error行单独显示grep "SSH error":筛选出所有包含SSH error的行grep -v "None":排除掉包含None的无效行awk部分:遍历每行的字段,提取所有以i-开头的实例并输出
Python脚本处理方案
如果需要更灵活的逻辑调整,用Python脚本处理更直观:
with open("input.txt", "r") as f: content = f.read() # 替换特殊换行符,拆分所有行 lines = content.replace("\r", "\n").splitlines() # 筛选有效行并提取i-*标识 valid_entries = [] for line in lines: if "SSH error" in line and "None" not in line: # 提取所有以i-开头的字符串 entries = [word for word in line.split() if word.startswith("i-")] valid_entries.extend(entries) # 输出结果 for entry in valid_entries: print(entry)
示例输出(针对你给出的输入)
运行后会得到以下有效条目:
- i-678
- i-001
内容的提问来源于stack exchange,提问作者ojas
相关产品推荐
相关产品推荐

