标题: [文本处理] bat怎么给 字符串的 所有大写 前面 添加一组字符 +^ [打印本页]
作者: hexilin2021 时间: 2018-8-27 12:13 标题: bat怎么给 字符串的 所有大写 前面 添加一组字符 +^
? 百度上一个答案也没有,参考也找不到,太神奇了
其实,大写只是一部分
我真正需要的转换,感觉特别复杂,例如:
HsFa^^sd%Hg\
转换过后:
+^Hs+^Fa+^^+^^sd+^%+^Hg\
是给每个大写,和 需要组合键才能 按出的 半角符号 前面 都加上 +^
想办法替换,想办法添加,都可以,只要结果正确就行
请继续朝下看,
我总结了一下,需要组合键才能输出的半角符号: ~!@#$%^&*()_+|{}:"<>?
而其中 &<>^|" 这些符号无法从文本中直接读出 ,想要读出,就需要在这些符号前面都加上^
总之,这几个符号似乎都不能正常读取和输出,都要加以修改
下来是我真正需要的:
同一文件夹下,我有个文本文档 a.txt,其内容:
第一行内容为: HsFa^^sd%Hg\---dfD*|>3pas$
第二行内容为: 格式如上,都是用 --- 来隔开的,字母数字符号全都是随机的,总长度不超过30
一共有几千行,所有内容都是由 数字,字母,和这些~!@#$%^&*()_+|{}:"<>?半角符号混搭号组成。
我现在要随机抽取其中一行,比如抽取到了第一行,然后将第一行正确输出到文本 b.txt,和 f.txt,每抽取一次,b.txt 都会被覆盖,而 f.txt 内容却一直在追加。
然后以另一种格式输出到 c.txt,其内容一共两行,格式如下:
第一行内容为: HsFa^^sd%Hg\
第二行内容为: dfD*|>3pas$
每抽取一次,c.txt 同样被覆盖
就是说,中间的 --- 会被删除,并且--- 后面的字符串会另起一行
而同一文件夹下,还有一个文本文档 d.txt ,这个文本文档里面内容很多,并不需要详细说明,但是其中有两个 特别的字符串 @@@和@@@@@,我需要将@@@替换成HsFa^^sd%Hg\ ,将@@@@@替换成dfD*|>3pas$,然后输出到 e.txt。 同样,每执行一次,e.txt都会被覆盖
而原文件 a.txt 每抽取一行,就会删除这一行,也就是说,a.txt每次都在变,行数每次都在减少一行,所以在随机抽取的时候,a.txt 的总行数,一直都是这个变量,每次抽取,a.txt的第一行和最后一行都有几率被抽中,保证不会出现那种明明 只有300行,却去抽301行的情况
总结下:
就是,原本这个文件夹里面 只有 a.txt 和 d.txt,执行以后,就多了 b.txt ,c.txt ,e.txt ,f.txt
我觉得 难 就 难在 各种 特殊字符 的区分上,还有 读入 和输出上
不论是在这个文件夹下写了一个bat,还是vbs,并且执行过程如何,其结果就是,双击一下,就会生成 b.txt ,c.txt ,e.txt ,f.txt 这四个txt文件
字符,所以需要的是针对我上述的那些字符
各位大佬看看如何,觉得这个很复杂还是简单呢,我自己尝试了好久,一直没弄出来
有么有大佬有空能写出来,当然代码越短越好
希望我表达的还算清楚吧,更希望大佬们能看到我的帖子
作者: CrLf 时间: 2018-8-27 12:18
- sed "s/[A-Z~!@#$%^&*()_+{}|:\x22<>?]/^+&/g" 修改前.txt >修改后.txt
复制代码
下载地址:http://www.bathome.net/s/tool/index.html?key=sed
作者: hexilin2021 时间: 2018-8-27 14:24
回复 2# CrLf
谢谢 老哥,我先去试试。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |