找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28942|回复: 8

[文本处理] 【已解决】批处理修改文本请教,包括添加一行字符,替换指定行的某个字符

[复制链接]
发表于 2014-4-1 22:03:41 | 显示全部楼层 |阅读模式
本帖最后由 1990claire 于 2014-4-3 22:33 编辑

想批处理修改某txt。包括
1、某一行全部换为另一字段(或是删除一行)(如第三行全变为a);
2、在第二行添加一行字段( 如下面的:options template)。
3、最后在某一行第几个字符换成别的字符(如下面举例的4变为23);
4、还有在某一行(指定行)添加或是删除第(m到n)个字符(该字符在全文重复出现,只希望替换指定行的该字符),应该怎么做呢?
(感谢各位大神了,希望能有rem注释)
原本内容(1.txt)是
nihao
ganxie
33333
tdef 44 line 34 你好
55555
。。。。。
想变为
nihao
options template
ganxie
hello
aaaaa
tdef  23 line 56 你好
5555555
。。。。。。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-4-1 22:49:55 | 显示全部楼层
第三行全变为a
  1. sed "3s/./a/g" a.txt > b.txt
复制代码
发表于 2014-4-1 22:50:53 | 显示全部楼层
2、在第二行添加一行字段( 如下面的:options template)。
  1. sed "2s/^/options template\n/" a.txt > b.txt
复制代码
发表于 2014-4-1 22:55:10 | 显示全部楼层
最后在某一行(假设是包含tdef的行)第6~7个字符换成别的字符(如下面举例的44变为23)
  1. sed "/tdef/s/^\(.....\)../\123/" a.txt > b.txt
复制代码
 楼主| 发表于 2014-4-1 23:04:13 | 显示全部楼层
回复 4# DAIC


    很感谢您的回复。不过,以上命令可以合并到一起运行一个bat来达到修改文本的效果吗?
 楼主| 发表于 2014-4-1 23:10:12 | 显示全部楼层
回复 4# DAIC


    不过,如果有多行含有tdef.但是只需要修改其中一处(出现在文本第5行,也是全文出现的第一个含有tdef的行).呢?
发表于 2014-4-2 09:32:15 | 显示全部楼层
回复 6# 1990claire
  1. sed "0,/tdef/s/^\(.....\)../\123/" a.txt > b.txt
复制代码
发表于 2014-4-2 09:33:52 | 显示全部楼层
合并2楼和7楼
  1. sed -e "3s/./a/g" -e "0,/tdef/s/^\(.....\)../\123/" a.txt > b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2020-12-23 11:35:50 | 显示全部楼层
非常感谢 兄弟们的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 09:24 , Processed in 0.021216 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表