标题: [文本处理] 批处理如何将文本里指定字符串替换成另一个文本里列出的内容 [打印本页]
作者: kongzhezhi 时间: 2016-10-25 09:16 标题: 批处理如何将文本里指定字符串替换成另一个文本里列出的内容
本帖最后由 pcl_test 于 2016-10-25 18:53 编辑
如何批量替换
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
我在另外一个txt(班级名.txt)里存放着全校班级名称,一行一个,格式如下:
一1班
一2班
一3班
一4班
一5班
一6班
一7班
一8班
二1班
二2班
二3班
二4班
二5班
二6班
作者: GNU 时间: 2016-10-25 09:41
希望替换成什么样子呢?
作者: 523066680 时间: 2016-10-25 09:49
本帖最后由 523066680 于 2016-10-25 11:00 编辑
这是小学生 还是 小学教师!?
还有,这届伸手党的表达能力令人担忧啊!
应该是按 "班级名.txt"里面的班级每个套
成绩表 人数统计 男生 女生 学生班群 教师群 运动员 三好生 书友会- use Encode;
- use utf8;
- binmode(STDOUT, ":encoding(gbk)");
-
- my @title = qw/成绩表 人数统计 男生 女生 学生班群 教师群 运动员 三好生 书友会/;
- my @show;
- for my $classname (<DATA>)
- {
- $classname =~ s/\r?\n//;
- @show = map { $classname . $_ } @title;
- print join("_", @show), "\n";
- }
-
- __DATA__
- 一1班
- 一2班
- 一3班
- 一4班
- 一5班
- 一6班
- 一7班
- 一8班
- 二1班
- 二2班
- 二3班
- 二4班
- 二5班
- 二6班
复制代码
作者: aa77dd@163.com 时间: 2016-10-25 10:54
回复 3# 523066680
哦, 伸手党啊- @echo off
- setlocal EnableDelayedExpansion
- mode 150
-
- set "txt=四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会"
-
- for %%a in (
- 一1班
- 一2班
- 一3班
- 一4班
- 一5班
- 一6班
- 一7班
- 一8班
- 二1班
- 二2班
- 二3班
- 二4班
- 二5班
- 二6班
- ) do echo;!txt:四3班=%%a!
-
- pause
复制代码
作者: 523066680 时间: 2016-10-25 11:01
本帖最后由 523066680 于 2016-10-25 11:25 编辑
回复 4# aa77dd@163.com
咦 批处理比perl简洁!
也模仿此格式,坐等codegay发python (可惜还是少了个搞ruby的,三缺一啊)- use utf8;
- binmode(STDOUT, ":encoding(gbk)");
-
- my @title = qw/成绩表 人数统计 男生 女生 学生班群 教师群 运动员 三好生 书友会/;
- for my $name (qw/
- 一1班
- 一2班
- 一3班
- 一4班
- 一5班
- 一6班
- 一7班
- 一8班
- 二1班
- 二2班
- 二3班
- 二4班
- 二5班
- 二6班
- /)
- {
- print join("_", map { $name . $_ } @title ), "\n";
- }
复制代码
作者: kongzhezhi 时间: 2016-10-25 12:41
年纪上去了 , 力不从心啊 ,这样好了我经常给论坛捐助吧
作者: kongzhezhi 时间: 2016-10-25 15:39
回复 2# GNU
就是用 txt里面的 各个班级来替换 四3班
其实那txt里还有很多班级的,我没有一一列出!
所以还是比较希望 班级名称写在txt里!
作者: kongzhezhi 时间: 2016-10-25 15:41
回复 5# 523066680
你好朋友 ,可能我没有列清楚,其实班级名称很多很多的!而且每次后面也不一定就是 男生 女生 ,所以关键就是替换 班级名字
就是用 txt里面的 各个班级来替换 四3班
其实那txt里还有很多班级的,我没有一一列出!
所以还是比较希望 班级名称写在txt里!
我可能在一个txt里放上几十几百行一样的
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
四3班成绩表_四3班人数统计_四3班男生_四3班女生_四3学生班群_四3班教师群_四3班运动员_四3班三好生_四3班书友会
然后用班级.txt 里的班级名称去替换
这样得到的新的txt就是各个班级了!
谢谢 !
作者: 523066680 时间: 2016-10-25 16:05
本帖最后由 523066680 于 2016-10-25 16:09 编辑
回复 8# kongzhezhi
我的是Perl代码,需要另外安装Perl环境的
找4楼修改批处理~
大概就是像这样 for /f %%a in (班级名.txt) do
作者: GNU 时间: 2016-10-25 16:45
- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in ('type "班级名.txt"') do (
- for /f %%j in ('type "原始文件.txt"') do (
- set "LineOld=%%j"
- set LineNew=!LineOld:四3班=%%i!
- >>"新文件_%%i.txt" echo !LineNew!
- )
- )
复制代码
作者: kongzhezhi 时间: 2016-10-25 17:07
回复 10# GNU
你好 ,我运行了一下 ,有一点点出入!
目前运行结果是 有多少班级生成了多少txt
需求是仅仅生成一个txt 如: 结果.txt
结果txt里大概是这样的
一1班成绩表_一1班人数统计_一1班男生_一1班女生_一1学生班群_一1班教师群_一1班运动员_一1班三好生_一1班书友会
一2班成绩表_一2班人数统计_一2班男生_一2班女生_一2学生班群_一2班教师群_一2班运动员_一2班三好生_一2班书友会
一3班成绩表_一3班人数统计_一3班男生_一3班女生_一3学生班群_一3班教师群_一3班运动员_一3班三好生_一3班书友会
一4班成绩表_一4班人数统计_一4班男生_一4班女生_一4学生班群_一4班教师群_一4班运动员_一4班三好生_一4班书友会
一5班成绩表_一5班人数统计_一5班男生_一5班女生_一5学生班群_一5班教师群_一5班运动员_一5班三好生_一5班书友会
作者: GNU 时间: 2016-10-25 18:16
回复 11# kongzhezhi - @echo off
- setlocal enabledelayedexpansion
- type nul > "结果.txt"
- for /f %%i in ('type "班级名.txt"') do (
- for /f %%j in ('type "原始文件.txt"') do (
- set "LineOld=%%j"
- set LineNew=!LineOld:四3班=%%i!
- >>"结果.txt" echo !LineNew!
- )
- )
复制代码
作者: CrLf 时间: 2016-10-25 21:11
这届伸手党的表达能力令人担忧啊!
作者: /zhqsystem/zhq 时间: 2016-10-25 21:26
楼上怎么答的,我居然没看懂,楼主来个样本[要求格式],注意个人隐私部分,替换后样本[要求格式],是否用第三方,是否包含特殊字符,是否可以建立临时文件夹和文本,是否归档,这样会便于处理问题
作者: kongzhezhi 时间: 2016-10-25 23:13
回复 13# CrLf
也不是什么伸手党 术业有专攻嘛 ,谢谢大家的帮忙!
已经解决! 祝大家工作顺利!
作者: GNU 时间: 2016-10-31 11:23
回复 14# /zhqsystem/zhq
这么简单的问题都看不懂,还好意思说人家是伸手党。
作者: /zhqsystem/zhq 时间: 2016-10-31 20:47
回复 16# GNU
无语,没点眼药水吧,你看懂了为什么在2楼去追问?如果已有完整答案为什么没有标记已解决?说明问题依旧没有解决需要追问或是上传必要文本,路径,改变后文本,每个人的解题方式不一样,需要这些数据来综合整理思路,难道全校只有4年级?
作者: GNU 时间: 2016-11-1 08:53
回复 17# /zhqsystem/zhq
15楼说已经解决了,祝你好运。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |