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

[文本处理] BAT如何处理多个文件并以一定规则的文件名保存?

小弟只会简单的正则表达式,对批处理完全不懂,看不懂论坛代码,还望前辈见谅!

现在,需要对一个文件夹中100个txt文件进行同样处理,并以一定规则的文件名保存。
例如,原文件名是FILE.txt,
处理(1):对FILE.txt文件处理后,保存为FILE_Co_PM.txt;
处理(2):对FILE_Co_PM.txt处理后,保存为FILE_NV_list.txt;
处理(3):对FILE_NV_list.txt处理后,保存为FILE_NV_list_freq.txt.

希望各位老师不吝赐教。

具体例子如下:

(1)
perl -pe 's/(?:\S+| )\t(\S+)\t(??:\S*?| ),){7}(\S+?| ),.*/\n\2_\1/g' BD.txt |perl -pe 's/.*,.*//g;s/.*EOS.*//g;s/^\n//g;'  > BD_Co_PM.txt

(2)
perl -pe 's/\n/\t/g;s/。_補助記号-句点\t/。_補助記号-句点\n/g;' BD_Co_PM.txt | perl -pe 's/^\s*//g'  > BD_NV_list.txt

(3)
sort BD4KW_NV_list.txt | uniq -c | sort -rn | perl -pe 's/[0-9]{1,}\s.*を為る//g;' |          perl -pe 's/^\s*//g' > BD4KW_NV_list_freq.txt

本帖最后由 tmplinshi 于 2013-5-22 22:23 编辑
@echo off
for /f "delims=" %%a in (' dir /b *.txt ') do (
        echo --^> %%a
        perl -pe "s/(?:\S+| )\t(\S+)\t(??:\S*?| ),){7}(\S+?| ),.*/\n\2_\1/g" "%%a" | perl -pe "s/.*,.*//g;s/.*EOS.*//g;s/^\n//g;"  > "%%~na_Co_PM.txt"
        perl -pe "s/\n/\t/g;s/。_補助記号-句点\t/。_補助記号-句点\n/g;" "%%~na_Co_PM.txt" | perl -pe "s/^\s*//g"  > "%%~na_NV_list.txt"
        sort "%%~na_NV_list.txt" | uniq -c | sort -rn | perl -pe "s/[0-9]{1,}\s.*を為る//g;" | perl -pe "s/^\s*//g" > "%%~na_NV_list_freq.txt"
)


Windows 下没有 uniq,sort 也不一样,这个情况不知道你是否知道。这些工具可以到 http://sourceforge.net/projects/unxutils/ 这个网站下载。

TOP

既然你懂Perl和正则,那就在Windows里面搭建一个Perl环境吧。
http://www.bathome.net/thread-12483-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# tmplinshi

版主,您好!一开始的解释不足,产生误会,实在不好意思。
我在mac或者linux环境下运行,因为数据量很大,win容易死机。

TOP

回复 3# Batcher

管理员,您好!谢谢您的回帖,win下我使用的是cygwin,目前来看还算好用,有时间研究一下您介绍的环境。

TOP

回复 4# lwplovely


2 楼的批处理符合你的要求吗?

TOP

回复 6# tmplinshi

我运行一下试试哈!

TOP

感慨下:亚历山大!
天书啊
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表