Board logo

标题: [文本处理] [已解决]如何用批处理给文本里加入关键词? [打印本页]

作者: a574045075    时间: 2024-4-22 16:11     标题: [已解决]如何用批处理给文本里加入关键词?

本帖最后由 a574045075 于 2024-4-22 20:11 编辑

有个1.txt文本,是网页源代码,里面有一些日期,我想在这些日期的前面加入"日期"这个关键词.
例如
2023-11-28 08:25 变成 日期2023-11-28 08:25
2023-11-27 08:25 变成 日期2023-11-27 08:25等等
文本
链接:https://pan.baidu.com/s/1fIW46QwC63Te6ueTMed4Kg?pwd=6666
作者: ShowCode    时间: 2024-4-22 16:27

回复 1# a574045075
  1. @echo off
  2. set "OldFile=1.txt"
  3. set "NewFile=2.txt"
  4. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%OldFile%"') do (
  5.     if "%%b" == "" (
  6.         echo,
  7.     ) else (
  8.         echo %%b | findstr /b "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] " >nul 2>nul
  9.         if errorlevel 1 (
  10.             echo,%%b
  11.         ) else (
  12.             echo 日期%%b
  13.         )
  14.     )
  15. ))>"%NewFile%"
复制代码

作者: a574045075    时间: 2024-4-22 16:36

本帖最后由 a574045075 于 2024-4-22 16:50 编辑

回复 2# ShowCode


好像又不行,我处理别的文件时,语法错误了.
这是我另一个文本,是一个网页源代码. 里面有20组日期,2023的.
链接:https://pan.baidu.com/s/1fIW46QwC63Te6ueTMed4Kg?pwd=6666
作者: aloha20200628    时间: 2024-4-22 19:41

本帖最后由 aloha20200628 于 2024-4-22 19:49 编辑

回复 3# a574045075

网页源文件 1.txt 是utf-8编码,将以下代码存为test.bat,因代码中的字面量有中文字符故须用utf-8编码存盘,其中调用的sed.exe可从论坛第三方工具 http://bcn.bathome.net/s/tool/index.html?key=sed 直接下载,可选4.9版本
  1. @echo off &sed -E "s/^(2023-)/日期\1/g" 1.txt>2.txt &exit/b
复制代码
以上代码用3楼提供的示例文件测试通过...

作者: a574045075    时间: 2024-4-22 19:57

本帖最后由 a574045075 于 2024-4-22 20:00 编辑

回复 4# aloha20200628


    不行啊 如果在2024或者2021前加入日期呢
作者: a574045075    时间: 2024-4-22 20:10

回复 4# aloha20200628


    可以了 谢谢
作者: aloha20200628    时间: 2024-4-22 20:57

回复 6# a574045075

用以下代码能匹配2020-2024中任一个年份
  1. @echo off &sed -E "s/^(202[0-4]-)/日期\1/g" 1.txt>2.txt &exit/b
复制代码

作者: a574045075    时间: 2024-4-23 08:54

回复 7# aloha20200628


    谢谢 我解决了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2