Board logo

标题: [文本处理] 批处理如何用文本内容分别替换a.txt里面的指定符号? [打印本页]

作者: chuan31    时间: 2011-1-26 14:45     标题: 批处理如何用文本内容分别替换a.txt里面的指定符号?

如何用当前目录下的txt文本内容分别替换a.txt文本里面的指定符号

例如当前目录下有300个txt文本(文件名不固定),还有一个a.TXT文本(里面有300个。号也可能是其他符号,这个可以调),如何实现用当前目录下的除a.txt之外的txt文本内容分别替换a.txt里面的指定符号,替换后即删除300个文件中的那一个,防止重复。要替换的符号要可以自己指定,这个该怎么写呢?

例如300个txt文本里面的内容分别为1-300.
a.txt里面的内容如下:
行1=
行2=
行3=
行4=
行5=
行6=
行7=
行300=
=号一般都是固定的,应该不需要枚举吧。

我要用300个txt文本里面的内容分别替换a.txt里面的=号,替换后的效果如下:
行11
行22
行33
行44
行55
行66
行77
行300300

替换后即删除300个文件中的那一个,防止重复。

[ 本帖最后由 chuan31 于 2011-1-26 21:15 编辑 ]
作者: chuan31    时间: 2011-1-26 15:17

自己顶起来啊! 希望大大们快快出手哈
作者: hanyeguxing    时间: 2011-1-26 18:07

1,是否存在英文标点符号?如果有,尽量枚举
2,楼主对问题描述不清楚,请尽量举例

[ 本帖最后由 hanyeguxing 于 2011-1-26 18:10 编辑 ]
作者: chuan31    时间: 2011-1-26 21:00

原帖由 hanyeguxing 于 2011-1-26 18:07 发表
1,是否存在英文标点符号?如果有,尽量枚举
2,楼主对问题描述不清楚,请尽量举例


版主 要被替换的符号一般都是固定的,有可能是*号 有可能是+号,我指定替换哪个符号就只需要判断哪个符号,用不到枚举。

例如300个txt文本里面的内容分别为1-300.

a.txt里面的内容如下:

行1=

行2=

行3=

行4=

行5=

行6=

行7=

行300=

=号一般都是固定的,应该不需要枚举吧。



我要用300个txt文本里面的内容分别替换a.txt里面的=号,替换后的效果如下:

行11

行22

行33

行44

行55

行66

行77

行300300

替换后即删除300个文件中的那一个,防止重复。

[ 本帖最后由 chuan31 于 2011-1-26 21:05 编辑 ]
作者: chuan31    时间: 2011-1-26 21:04

原帖由 hanyeguxing 于 2011-1-26 18:07 发表
1,是否存在英文标点符号?如果有,尽量枚举
2,楼主对问题描述不清楚,请尽量举例


例如300个txt文本里面的内容分别为1-300.
a.txt里面的内容如下:
行1=
行2=
行3=
行4=
行5=
行6=
行7=
行300=
=号一般都是固定的,应该不需要枚举吧。

我要用300个txt文本里面的内容分别替换a.txt里面的=号,替换后的效果如下:
行11
行22
行33
行44
行55
行66
行77
行300300

替换后即删除300个文件中的那一个,防止重复。
作者: chuan31    时间: 2011-1-27 13:01

自己顶起来啊 提前祝大家过年好 哈哈
作者: chuan31    时间: 2011-1-30 19:55

大家都回家了吗 这个代码还没高手帮忙哦
作者: Batcher    时间: 2011-1-30 21:14

  1. @echo off
  2. set char==
  3. set row=0
  4. for %%a in (*.txt) do (
  5.     if "%%a" neq "a.txt" (
  6.         set /p str=<"%%a"
  7.         set /a row+=1
  8.         call sed -i "%%row%%s/%char%/%%str%%/g" a.txt
  9.         del /f /q "%%a"
  10.     )
  11. )
复制代码

作者: chuan31    时间: 2011-1-30 21:29

原帖由 Batcher 于 2011-1-30 21:14 发表
@echo off
set char==
set row=0
for %%a in (*.txt) do (
    if "%%a" neq "a.txt" (
        set /p str=


请问要替换的符号是在哪里定义呢? 我修改了set char==这里 修改为set char=。 运行后a.txt里面的句号没有被替换 set char==这样的 a.txt里面的=号也灭有被替换,不过替换源会自动删除 请问是不是我操作不当
作者: chuan31    时间: 2011-1-30 21:44

顶起来啊!!!!!!!!!!!!!!!!!
作者: Batcher    时间: 2011-1-31 19:56     标题: 回复 9楼 的帖子

去下载一个 sed.exe 吧:
http://bbs.bathome.net/thread-3981-1-1.html




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2