如何批量删除节奏游戏谱表脚本中连续重复的TIME行?
解决节奏游戏谱表脚本连续TIME行的删除问题
针对你需要删除连续TIME(开头行的需求,这里提供几个高效的批量处理方法:
方法1:用sed命令行工具(适用于Linux/macOS/WSL)
直接在终端运行以下命令,将输入文件input.txt处理后输出到output.txt:
sed '/^TIME(/ {N; /\nTIME(/ s/\nTIME(.*//; P; D}' input.txt > output.txt
逻辑:匹配到TIME(开头的行后,读取下一行;如果下一行也是TIME(开头,就删除这行;最后保留第一行并继续处理剩余内容。
方法2:Python脚本(跨平台,适合新手)
创建一个.py文件,复制以下代码,修改输入输出文件名后运行:
input_file = "你的谱表脚本文件名.txt" output_file = "处理后的文件名.txt" last_is_time = False with open(input_file, 'r', encoding='utf-8') as f_in, open(output_file, 'w', encoding='utf-8') as f_out: for line in f_in: line_content = line.strip() if not line_content: continue # 跳过空行(可选,根据你的脚本情况调整) current_is_time = line_content.startswith("TIME(") if current_is_time and last_is_time: continue # 连续TIME行,跳过当前行 f_out.write(line) last_is_time = current_is_time
逻辑:逐行读取脚本,记录上一行是否是TIME行;如果当前行和上一行都是TIME行,就不写入新文件,否则保留该行。
方法3:文本编辑器正则替换(VS Code/Sublime等)
打开你的谱表脚本,开启正则替换模式:
- 查找框输入:
^(TIME\(.*\)\n)(TIME\(.*\)\n) - 替换框输入:
$1 - 多次点击「全部替换」,直到没有匹配结果(如果有超过两行的连续TIME行)
如果编辑器支持非捕获组,也可以用这个查找表达式一次性处理所有连续TIME行:
查找:^(TIME\(.*\)\n)(?:TIME\(.*\)\n)+
替换:$1
内容的提问来源于stack exchange,提问作者Alexander López saldarriaga
相关产品推荐
相关产品推荐

