求教各位,现在想对某文件进行以下操作:
1 查找文件中的特定字符A1A1
2 判断1中查找到的字符后面是否是换行符,?或&符号
3 如不是,则删除A1A1后面的5个字符
例:
1234567890ABCDEFGA1A1?xxxxx
1234567890ABCDEFGA1A1zzzzz?yyyyy
1234567890ABCDEFGA1A1&xxxxx
1234567890ABCDEFGA1A1zzzzz&yyyyy
1234567890ABCDEFGA1A1
变换为
1234567890ABCDEFGA1A1?xxxxx
1234567890ABCDEFGA1A1?yyyyy
1234567890ABCDEFGA1A1&xxxxx
1234567890ABCDEFGA1A1&yyyyy
1234567890ABCDEFGA1A1
第二行与第四行的zzzzz被删除
请各位指点,谢谢
关于查找文件中字符替换的问题
-
- 帖子: 1
- 注册时间: 2012-07-12 23:30
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 关于查找文件中字符替换的问题
代码: 全选
sed 's/A1A1[^?&]\{5\}/A1A1/'
sed 's/A1A1[^?&].\{4\}/A1A1/'
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 关于查找文件中字符替换的问题
● perl -pne 's/(?>A1).*([?&])/$1/' tt
# ● 2012-07-13_08:57:16
1234567890ABCDEFG?xxxxx
1234567890ABCDEFG?yyyyy
1234567890ABCDEFG&xxxxx
1234567890ABCDEFG&yyyyy
1234567890ABCDEFGA1A1
# ● 2012-07-13_08:57:16
1234567890ABCDEFG?xxxxx
1234567890ABCDEFG?yyyyy
1234567890ABCDEFG&xxxxx
1234567890ABCDEFG&yyyyy
1234567890ABCDEFGA1A1
● 鸣学