我正在寻找一些关于创建脚本来查找和替换文本文件中的特殊字符的指导。
我已经想出了这段伪代码,但填补空白有点困难:
- 查找换行符并替换为空格。
- 查找
CP
并用换行符替换。 - 查找
Mr. Mime
(带空格)并替换为Mr.Mime
(不带空格) - 查找标签并替换为空格
- 查找双倍空格并替换为单倍空格
- 查找
%
并替换为空(也就是将其省略) - 找到“ ATK DEF STA IV ”并替换为空格
“查找”代表“查找所有实例”。
我一直在研究sed
,但似乎找不到如何处理这些特殊字符的方法。任何想法都非常感谢。
编辑:正如此处所要求的,输入的一小段:
CP 1593
SSS
Sudowoodo♀
ATK DEF STA IV
15 15 15 100.0%
counter
rock slide
CP 1262
SSS
Tangrowth♀4
ATK DEF STA IV
15 15 15 100.0%
vine whip
grass knot
CP 1077
SSS
Mr. Mime♀
ATK DEF STA IV
15 15 15 100.0%
confusion
psychic
预期输出:
1593 SSS Sudowoodo♀ 15 15 15 100.0 counter rock slide
1262 SSS Tangrowth♀4 15 15 15 100.0 vine whip grass knot
1077 SSS Mr.Mime♀ 15 15 15 100.0 confusion psychic
答案1
sed 文本处理严格以行为导向,因此用 sed 替换换行符相当困难。
未经测试:
cat file |
tr '\n\t' ' ' |
sed -e 's/ CP /\n/g' \
-e 's/Mr[.] Mime/Mr.Mime/g' \
-e 's/ */ /g' \
-e 's/%//g'