Board logo

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

作者: nsdor    时间: 2015-6-14 09:54     标题: [已解决]批处理如何在文本中含有指定字符串的所在行相邻的几行插入指定内容

求教大神,谢谢了

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

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

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

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

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

附件:
作者: bailong360    时间: 2015-6-15 22:51

本帖最后由 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. }
复制代码

作者: nsdor    时间: 2015-6-16 19:37

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



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

回复 3# nsdor
需要下载gawk.exe与批处理放在同一目录下执行,下载地址见签名档
作者: nsdor    时间: 2015-6-17 15:04

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



    谢谢,
   大侠,能否写一个不用第三方软件的,只是一个批处理的呢
   再次感谢
作者: CrLf    时间: 2015-6-17 16:47

回复 2# bailong360


    # 不如 * 或者 ? 来得严谨,万一目录下有个 #.bat 呢?
作者: nsdor    时间: 2015-6-17 16:56

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



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

   又要怎么修改呢?

  谢谢
作者: bailong360    时间: 2015-6-17 22:21

回复 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. }
复制代码

作者: nsdor    时间: 2015-6-22 10:02

谢谢,bailong360




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