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

[文本处理] 批处理如何删除文本中指定内容,但每行开头的字符需保留

[复制链接]
发表于 2019-4-8 18:12:58 | 显示全部楼层 |阅读模式
在txt文档中,如何在每行内部中删除指定的字符,但每行都要保留行首的字符。例如:
[一生 ]1984年6月26日[一生 ]出生于[一生 ]陕西省[一生 ]西安市。

需要将 [一生 ] 这几个字符从每行中删除,但又要保留行首的那个。
变成这样
[一生 ]1984年6月26日出生于陕西省西安市。


也就是说,每行中除了第一个 [一生 ] ,其它的都删除掉。请问可以实现这样吗,谢谢
发表于 2019-4-8 18:31:22 | 显示全部楼层
本帖最后由 WHY 于 2019-4-8 19:13 编辑
  1. $arr = (type 1.txt -ReadCount 0) -replace '(?!^)\[一生 ]'; sc 2.txt $arr
复制代码

评分

参与人数 1技术 +1 收起 理由
no543216789 + 1 谢谢

查看全部评分

发表于 2019-4-8 18:50:23 | 显示全部楼层
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. cd /d "%~dp0"
  7. set "入=a.txt"
  8. set "出=b.txt"
  9. powershell ^
  10.     $s='[一生 ]';^
  11.     $t=@(gc '%入%')^|%%{$r=$_.replace($s,'');if(-join($_[0..($s.length-1)]) -eq $s){$s+$r}else{$r}};^
  12.     [IO.File]::WriteAllLines('%出%', $t, [Text.Encoding]::Default);
  13. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
no543216789 + 1 谢谢

查看全部评分

发表于 2019-4-9 09:33:14 | 显示全部楼层
  1. sed "s/\[一生 \]//g; s/^/[一生 ]/" 1.txt > 2.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 02:05 , Processed in 0.019661 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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