如何将以|开头的行与上一行合并,得到目标格式的文本数据
可直接使用的实现方案
1. awk命令(Linux/macOS环境首选,一行完成)
执行命令:
awk '/^\|/{print prev $0;next} {prev=$0}' 你的输入文件路径 > 输出文件路径
逻辑说明:遇到以|开头的行就直接和上一行拼接输出,其余行暂存等待匹配。
2. sed命令
执行命令:
sed ':a;N;/\n|/s/\n//;ta;P;D' 你的输入文件路径 > 输出文件路径
逻辑说明:循环读取相邻两行,若第二行以|开头则删除中间换行符拼接,否则正常输出第一行继续处理后续内容。
3. Python跨平台脚本(Windows/多环境兼容,可嵌入其他逻辑)
# 替换为你的输入、输出文件路径 INPUT_PATH = "input.txt" OUTPUT_PATH = "output.txt" with open(INPUT_PATH, "r", encoding="utf-8") as f: lines = [line.rstrip("\n") for line in f] result = [] prev_line = "" for line in lines: if line.startswith("|"): result.append(prev_line + line) prev_line = "" else: if prev_line: result.append(prev_line) prev_line = line # 处理最后一行没有以|开头的剩余内容 if prev_line: result.append(prev_line) with open(OUTPUT_PATH, "w", encoding="utf-8") as f: f.write("\n".join(result))
内容的提问来源于stack exchange,提问作者Firsthen
相关产品推荐
相关产品推荐

