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

[文本处理] [已解决]批处理如何在文本中含有指定字符串的所在行相邻的几行插入指定内容

求教大神,谢谢了

1,搜索文本中特定字符 如“*help me”,执行的 插入操作

a,  在 *help me 前面插入新的两行
*help all
09876543

b, 在  *help me 及下面 六行的行首 插入特定字符@

c,在  *help me 中的 fg 字符 下面 插入数字
   搜索到的第一个下插入 1
   后面所有的         插入2

2,搜索文本中  *help xdfus 替换 为 *help us

附件:
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 bailong360 于 2015-6-17 22:19 编辑
  1. #? 2>nul&@gawk -f %0 "初始.txt">$&move /y $ "初始.txt"&exit
  2. {
  3. gsub("*help xdfus","*help us")
  4. if ($0 ~ "*help me") {
  5.     print "*help all"
  6.     print "09876543"
  7.     print ""
  8.     bMatch = 7
  9. }
  10. if (bMatch != 0 &&$0 !~ /^$/) {
  11.     $0 = "@"$0
  12.     bMatch-=1
  13. }
  14. print $0
  15. if ($0 ~ /fg$/) {
  16.     if (jud != 5) {
  17.         print "                 1"
  18.         jud = 5
  19.     } else {
  20.         print "                 2"
  21.     }
  22. }
  23. }
复制代码

TOP

bailong360 发表于 2015-6-15 22:51



    谢谢,
    我是批处理新手,我复制了代码,保存.bat格式运行后,
    生成的目标 是空的文件,
    是我哪里操作不对吗,
    如果不生成目标文件,在源文件上执行上述操作,又如何写代码呢
    再次感谢

TOP

回复 3# nsdor
需要下载gawk.exe与批处理放在同一目录下执行,下载地址见签名档

TOP

回复  nsdor
需要下载gawk.exe与批处理放在同一目录下执行,下载地址见签名档
bailong360 发表于 2015-6-16 21:55



    谢谢,
   大侠,能否写一个不用第三方软件的,只是一个批处理的呢
   再次感谢

TOP

回复 2# bailong360


    # 不如 * 或者 ? 来得严谨,万一目录下有个 #.bat 呢?
1

评分人数

TOP

bailong360 发表于 2015-6-15 22:51



    如果仅在第一个*help me 前面
   插入 *help all
              0987654321

   又要怎么修改呢?

  谢谢

TOP

回复 7# nsdor
  1. #? 2>nul&@gawk -f %0 "初始.txt">$&move /y $ "初始.txt"&exit
  2. {
  3. gsub("*help xdfus","*help us")
  4. if ($0 ~ "*help me"&&jud2 != 5) {
  5.     print "*help all"
  6.     print "09876543"
  7.     print ""
  8.     bMatch = 7
  9.     jud2 = 5
  10. }
  11. if (bMatch != 0 &&$0 !~ /^$/) {
  12.     $0 = "@"$0
  13.     bMatch-=1
  14. }
  15. print $0
  16. if ($0 ~ /fg$/) {
  17.     if (jud != 5) {
  18.         print "                 1"
  19.         jud = 5
  20.     } else {
  21.         print "                 2"
  22.     }
  23. }
  24. }
复制代码
1

评分人数

TOP

谢谢,bailong360

TOP

返回列表