You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将文件中符合条件的拆分换行内容合并至对应上一行

如何将文件中符合条件的拆分换行内容合并至对应上一行

嘿,我来帮你搞定这个问题!从你给出的例子来看,核心问题是原本属于同一行的描述内容,被拆成了多行,而且这些拆分出来的行开头没有像815、816那样的编号标识。下面给你几个简单实用的解决方法,按需选择就行:

方法一:用文本编辑器的正则替换(最快捷)

如果你用的是VS Code、Notepad++这类支持正则替换的编辑器,几步就能搞定:

  1. 打开你的目标文件,按下Ctrl+H调出替换面板
  2. 勾选「正则表达式」选项(VS Code里是右上角的.*图标,Notepad++里是替换窗口的「正则表达式」单选框)
  3. 在「查找内容」里输入:\n\s+
    • 这个正则的意思是:匹配换行符,加上换行后开头的所有空白字符(空格、制表符都算)
  4. 在「替换为」里输入一个空格
  5. 点击「全部替换」,所有拆分出来的行就会自动合并到对应的上一行啦!

方法二:用Python脚本(适合批量/复杂场景)

如果你需要处理大量文件,或者以后还要重复做这个操作,可以写个简单的Python脚本:

# 替换成你的输入文件路径
input_file = "your_input_file.txt"
# 替换成你想要保存的输出文件路径
output_file = "merged_output.txt"

with open(input_file, 'r', encoding='utf-8') as f:
    lines = f.readlines()

merged_lines = []
current_content = ""

for line in lines:
    cleaned_line = line.strip()
    # 判断当前行是否是新的编号行(以数字开头)
    if cleaned_line and cleaned_line[0].isdigit():
        # 如果之前有未保存的内容,先存起来
        if current_content:
            merged_lines.append(current_content.strip())
        # 开始新的一行内容
        current_content = line
    else:
        # 不是编号行,把内容拼接到当前行后面
        current_content += " " + cleaned_line

# 把最后一行的内容加进去
if current_content:
    merged_lines.append(current_content.strip())

# 写入处理后的文件
with open(output_file, 'w', encoding='utf-8') as f:
    f.write("\n".join(merged_lines))

运行这个脚本后,会生成一个合并好的新文件,不会修改原文件,更安全。

方法三:用awk命令(适合Linux/macOS用户)

如果你熟悉终端命令,用awk一行就能搞定:

awk '/^[0-9]/ {if (prev) print prev; prev=$0; next} {prev=prev " " $0} END {print prev}' your_input_file.txt > merged_output.txt

这个命令的逻辑很简单:遇到以数字开头的行,就先打印之前缓存的内容,然后缓存当前行;如果不是数字开头的行,就把它拼到缓存内容后面;最后打印剩下的缓存内容,直接输出到新文件里。

备注:内容来源于stack exchange,提问作者Sean_C

火山引擎 最新活动