You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量删除文件标题行第12-17位字符以适配xscreensaver文本滚动

嘿,这个需求很明确,刚好适合用命令行工具或者代码修改来解决,给你两个实用方案:

方案1:直接用sed命令处理现有文件

如果你已经有生成好的输入文件,不想改代码,用sed命令一行就能搞定——专门针对前两行标题不处理,从第三行开始删除第12到17位字符:

sed '3,$s/^\(.\{11\}\).\{6\}/\1/' input.txt > output.txt

命令解释:

  • 3,$:指定只对第3行到最后一行执行替换操作,前两行标题原封不动
  • ^\(.\{11\}\):捕获行开头的11个字符(也就是你要保留的日期和小时分钟部分)
  • .\{6\}:匹配接下来的6个字符(第12到17位,包括冒号、秒数和多余空格)
  • 替换成\1,也就是只保留前面捕获的11个字符,再拼接后面的标题内容

方案2:修改代码在生成时直接格式化

如果你更倾向于从源头解决,修改生成文本的代码(比如用Python),这样还能顺便添加标题行,一步到位:

# 假设你已经有了从RSS解析得到的条目行列表
entries_lines = [
    "05-24 18:48:16 Truckers' strike leads to fuel shortages in Brazil",
    "05-24 18:48:16 The marathon atop the world's deepest lake"
]

# 准备标题行(如果需要添加的话)
title_lines = [
    "ABC World News Feed RSS Data retrieved from https:--abcnews.go.com-abcnews-headlines",
    # 可以按需添加第二行标题
    "RSS Headlines for Xscreensaver"
]

# 合并并处理所有行
output_lines = title_lines.copy()
for line in entries_lines:
    # 保留前11个字符,跳过第12-17位,拼接后面的标题
    processed_line = line[:11] + line[17:]
    output_lines.append(processed_line)

# 写入到输出文件
with open("rss_for_xscreensaver.txt", "w") as f:
    f.write("\n".join(output_lines))

代码说明:

  • 先定义好标题行,直接加入输出列表
  • 对每个RSS条目行,通过字符串切片保留前11个字符(日期和小时分钟),跳过第12到17位的内容,再拼接后面的标题文本
  • 最后把所有行写入文件,直接就能给xscreensaver用

这样两种方案都能满足你的需求,选哪个看你更习惯哪种方式~

内容的提问来源于stack exchange,提问作者Bob C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:45:04