Board logo

标题: [文本处理] 批处理如何替换指定字段? [打印本页]

作者: 279874107    时间: 2016-2-20 11:31     标题: 批处理如何替换指定字段?

寒假作业题  下面有账号落干
账号1----dfadg
账号2----fs**sd
账号3----dfawsd
要求密码全部为123456,应该怎么做呢?
作者: ivor    时间: 2016-2-20 13:29

回复 1# 279874107
  1. @echo off
  2. (for /f "delims=-" %%a in ('type 66.txt') do (
  3. echo %%a----123456
  4. ))>new.txt
复制代码

作者: codegay    时间: 2016-2-20 15:48

  1. """
  2. 如何替换指定字段.py
  3. http://bbs.bathome.net/thread-39434-1-1.html
  4. 2016年2月20日 14:51:20 codegay
  5. """
  6. with open("a.txt","r+") as f:
  7.     txt=[r.rstrip("\n").split("-")[0]+"---123\n" for r in f.readlines()]
  8.     print(txt)
  9.     f.seek(0)
  10.     f.truncate()
  11.     [f.write(r) for r in txt]
  12.     print(txt)
复制代码

作者: codegay    时间: 2016-2-20 16:55

  1. #方法2 正则表达式
  2. #2016年2月20日 15:50:15
  3. import re
  4. with open("b.txt","r+") as f:
  5.     txt=re.sub(r"(.+?)---.+",r"\1---1234",f.read())
  6.     print(txt)
  7.     f.seek(0)
  8.     f.truncate()
  9.     f.write(txt)
复制代码

作者: ivor    时间: 2016-2-20 18:41

本帖最后由 ivor 于 2016-2-20 18:53 编辑
  1. # python 3.5.1
  2. # coding:utf-8
  3. # by:ivor  bathome.net
  4. # re.sub替换示例,请把被替换的文件拖到本程序运行
  5. import re, sys
  6. if len(sys.argv) > 1:
  7.     rFile = sys.argv[1]
  8. else:
  9.     exit(1)
  10. with open(rFile, "r") as file:
  11.     wFile = open("new.txt", "w")
  12.     for line in file:
  13.         reg = re.compile(r"[a-zA-Z](.*?)$")
  14.         line = re.sub(reg,"123456",line)
  15.         wFile.write(line)
  16.     wFile.close()
  17. print("结果保存在new.txt")
  18. input("")
复制代码

作者: bailong360    时间: 2016-2-20 19:20

楼上的真会玩
  1. sed -i "s/----.*$/----123456/g" test.txt
复制代码
racket对中文的支持不完善,还是练习js吧
  1. //&cls&cscript -nologo -e:jscript "%~f0" >New.txt&exit
  2. WSH.Echo(new ActiveXObject('Scripting.FileSystemObject').OpenTextFile('test.txt', 1).ReadAll().replace(/----.*/g,'----123456'));
复制代码





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