[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]如何用批处理给文本里加入关键词?

本帖最后由 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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 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%"
复制代码
1

评分人数

测试代码之前请做好备份

TOP

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

回复 2# ShowCode


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

TOP

本帖最后由 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楼提供的示例文件测试通过...
1

评分人数

TOP

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

回复 4# aloha20200628


    不行啊 如果在2024或者2021前加入日期呢

TOP

回复 4# aloha20200628


    可以了 谢谢

TOP

回复 6# a574045075

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

TOP

回复 7# aloha20200628


    谢谢 我解决了

TOP

返回列表