标题: [文本处理] 批处理如何修改txt文本在指定行下面添加文字? [打印本页]
作者: alpha 时间: 2010-2-4 09:16 标题: 批处理如何修改txt文本在指定行下面添加文字?
两个问题:
第一个,需求如下:
我有一个文本文档1.txt ,我要在第7行下面添加以下内容:
- qewqeqwe
- dfgdgaweqe
- dsadadsada
复制代码
请问,如何实现?
第二个,需求如下:
我有一个文本文档2.txt ,我要在文本中搜索“123”这样的字,然后在“123”这行下面增加如下内容:
- qewqeqwe
- dfgdgaweqe
- dsadadsada
复制代码
请问,如何实现?
作者: rwxyxy 时间: 2010-2-4 10:15
发帖前先搜索一下吧!
作者: batman 时间: 2010-2-4 10:26
这些问题论坛都有现成的答案的,楼主怎么就是不先搜索下。。。
问题一- @echo off
- (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
- echo %%b
- if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
- ))>1.txt
- start 1.txt
复制代码
问题二- @echo off
- (for /f "delims=" %%a in (2.txt) do (
- echo %%a
- if "%%a" equ "123" echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
- ))>2.txt
- start 2.txt
复制代码
[ 本帖最后由 batman 于 2010-2-4 10:29 编辑 ]
作者: Batcher 时间: 2010-2-4 13:28
第一个- sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" a.txt
复制代码
作者: Batcher 时间: 2010-2-4 13:29
第二个- sed -i "/123/a\qewqeqwe\ndfgdgaweqe\ndsadadsada" a.txt
复制代码
作者: jianmp3 时间: 2010-5-3 03:33
@echo off
(for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
echo %%b
if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
))>1.txt
start 1.txt
我存在了一个BAT里 怎么不行?
1.TXT 里的内容
1
2
3
4
5
6
7
运行BAT后内容全清空了 什么也没有
作者: jianmp3 时间: 2010-5-3 03:35
sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" 1.txt
我存在了一个BAT里 运行后没反应
1.TXT里的内容不变
作者: Batcher 时间: 2010-5-3 09:32 标题: 回复 6楼 的帖子
把
))>1.txt
改成
))>result.txt
作者: Batcher 时间: 2010-5-3 09:32 标题: 回复 7楼 的帖子
你有sed.exe么?
作者: jianmp3 时间: 2010-5-3 09:45
原帖由 Batcher 于 2010-5-3 09:32 发表
你有sed.exe么?
没有 我在百度找不到SED.EXE 的下载
板主有下载链接没,下载后要放在哪
作者: hanyeguxing 时间: 2010-5-3 10:00
原帖由 jianmp3 于 2010-5-3 09:45 发表
没有 我在百度找不到SED.EXE 的下载
板主有下载链接没,下载后要放在哪
http://bbs.bathome.net/thread-1114-1-1.html
放到批处理所在目录或system32目录等
作者: jianmp3 时间: 2010-5-3 10:39
谢谢楼上的 ,还有再问最后个问题- @echo off
- (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do (
- echo %%b
- if %%a equ 7 echo qewqeqwe&echo dfgdgaweqe&echo dsadadsada
- ))>result.txt
复制代码
或- sed -i "7a\qewqeqwe\ndfgdgaweqe\ndsadadsada" 1.txt
复制代码
这两个BAT添加的内容是在第7行下面,也就是第8行了
如果内容是要显示在第7行的内容后面 这两段BAT要怎么改了
作者: hanyeguxing 时间: 2010-5-3 11:07
以第一个为例:- @echo off
- (for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do if %%a==7 (echo %%b追加的字符) else echo %%b)>11.txt
复制代码
作者: jianmp3 时间: 2010-5-3 11:16
原帖由 hanyeguxing 于 2010-5-3 11:07 发表
以第一个为例:@echo off
(for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* 1.txt') do if %%a==7 (echo %%b追加的字符) else echo %%b)>11.txt
谢谢了
简单明了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |