找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22947|回复: 4

[文本处理] 【已解决】批处理如何删除文本中每行指定字符串前面的内容?

[复制链接]
发表于 2014-5-22 19:08:04 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-13 11:51 编辑

有一个文本:
  1. as  sd  df  fg  RNxx  fg   gh  
  2. ad  nb  yy  RNxx gd  trh  fwe
  3. uu  RNax 35t   f  tuu  et  ewteer
  4. ssf  er  wrw  fs  er RNxb et  ryy5  
  5. ......
复制代码
每一行均有一个单词的开头为RN,现要删除此单词前的所有数据,将单词放在句首
  1. RNxx  fg   gh  
  2. RNxx gd  trh  fwe
  3. RNax 35t   f  tuu  et  ewteer
  4. RNxb et  ryy5  
  5. ......
复制代码
如何做到? 有几种方法?
发表于 2014-5-22 20:38:26 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.    set "str= %%a"
  4.    setlocal enabledelayedexpansion
  5.    echo;!str:* RN=RN!
  6.    endlocal
  7. )
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
elec + 1 You are True!

查看全部评分

 楼主| 发表于 2014-5-23 08:54:22 | 显示全部楼层
回复 2# CrLf


       为什么打印出来前面都是分号??
       把这句   echo;!str:* RN=RN!      改为 echo  !str:* RN=RN! >> 2.txt   也打印出了分号!!!

       有第三方的方法吗??
发表于 2014-5-23 10:20:43 | 显示全部楼层
vista以上运行:
powershell -command "& {(get-content "文件路径") -creplace '^.*?RN','RN'}"
xp及以下,安装notepad++

点击“全部替换”
发表于 2016-8-13 12:04:06 | 显示全部楼层
第三方
  1. sed "s/.*\(RN\)/\1/g" "1.txt">"2.txt"
复制代码
  1. gawk -F"RN" "{print /RN/?FS$NF:$0}" "1.txt">"2.txt"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 06:13 , Processed in 0.032282 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表