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

[文本处理] [已解决]批处理如何对文本内容增、删、改?

本帖最后由 syqh2010 于 2015-3-4 00:25 编辑

求一个必较完善的,对文本内容同时进行增、删、改的纯批。
我不懂批处理,希望有这样的模板,需要用时直接填空就行了。
文本行数较多,部分内容如下:a.txt
xx45548
  gan124ggg
xie45578
ge12348gd
nono456
wei789f2
mang44df5
you

要求:
1)在以"man"开头的行下一行写入"thank"
   在以"wei"开头的行下一行写入"bang8856"
2)将以"xx"、"non"开头的行删除
3)将以"  gan"开头的行替换为"gan555"
   将以"xie"开头的行替换为"  xiexie"
4)在开头写入"bathome"
   在结尾写入"verymuch"
5)新文本另存,且文件名=原文件名+当前日期(如a20141007.txt)

改后新文本内容如下:
bathome
gan555
  xiexie
ge12348gd
wei789f2
bang8856
mang44df5
thank
you
verymuch
1

评分人数

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

如果可以用第三方的话,这用 sed 多容易...

TOP

回复 2# CrLf
那就也说下用sed怎么用吧,说不定用的着。
另请问,sed在公司电脑上能不能装?谢谢!

TOP

本帖最后由 CrLf 于 2014-10-7 23:53 编辑

回复 3# syqh2010


    sed 约等于绿色软件,有权限的话扔 system32 目录下即可全局调用,要是没权限,和批处理放在同一个目录下也行
  1. @echo off
  2. set "原文件名=a.txt"
  3. for /f "tokens=1-3 delims=-/\:. " %%a in ("%date%") do set "当前日期=%%a%%b%%c"
  4. for %%a in ("%原文件名%") do set "新文件名=%%~na%当前日期%%%~xa"
  5. sed -r -e "1ibathome" -e "/^man/athank" -e "/^wei/abang8856" -e "/^xx|^non/d" -e "/^  gan/s/.*/gan555/" -e "/^xie/s/.*/xiexie/" -e "$averymuch" "%原文件名%">"%新文件名%"
复制代码
1

评分人数

TOP

回复 4# CrLf

我累个去,果然牛拜!
在这里看到有sed,但不知怎么用,经兄台指教放在目录下果然能用!谢了!

TOP

回复 4# CrLf

很好用,早知就不用纯批了。
有一点,少了空格,

要求                    实际输出
bathome             bathome   
gan555               gan555
xiexie                xiexie
ge12348gd         ge12348gd
wei789f2            wei789f2
bang8856           bang8856
mang44df5         mang44df5
thank                  thank
you                     you
verymuch            verymuch

TOP

回复 6# syqh2010


-e "/^xie/s/.*/  xiexie/"
你自己加上空格就行啦
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher
谢谢!可以了!
但还想再问一下,如果在以"wei"开头的下一行这写入"    bang8856"(带空格)怎么写?

TOP

回复 8# syqh2010


-e "s/^wei.*/&\n    bang8856/"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher
谢谢!成功!

TOP

返回列表