免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: coltest
打印 上一主题 下一主题

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-03-29 14:05 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

原帖由 "icesummit" 发表:


这个解决不了AAAA这样的东东,不满足楼主的要求啊。

你测试过吗?
[jason@firewall jason]$ echo "AAAA"|sed 's/\([^A]*\)AAA\([^A]*\)/\1BBB\2/g'
BBBA

论坛徽章:
0
12 [报告]
发表于 2005-03-29 14:23 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

呵呵,梦蓝兄请看看楼主的要求

论坛徽章:
0
13 [报告]
发表于 2005-03-29 15:07 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

原帖由 "梦蓝" 发表:

[jason@firewall jason]$ echo "AAAA"|sed 's/\([^A]*\)AAA\([^A]*\)/\1BBB\2/g'
BBBA


楼主的主要目的就是要避免出现BBBA这种情况。

论坛徽章:
0
14 [报告]
发表于 2005-03-29 15:42 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

原帖由 "icesummit" 发表:


这个不满足:
AAA bbb AAA这样的情况呀 :wink:

哈兄好久不见啊。

噢!这里只是根据人家提供的数据所写!
现修改如下:
  1. # cat a
  2. AAA bbbbb AAA hjkgdf
  3. AAAA bbbbb AAA hjkgdf
  4. AAAAA bbbbb AAA hjkgdf
  5. AAA bbbbb AAA hjkgdf
  6. # sed 's/\<AAA\>/BBB/g' a
  7. BBB bbbbb BBB hjkgdf
  8. AAAA bbbbb BBB hjkgdf
  9. AAAAA bbbbb BBB hjkgdf
  10. BBB bbbbb BBB hjkgdf
复制代码

PS:请注意sed版本。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
15 [报告]
发表于 2005-03-29 17:52 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

sed 's/\<AAA\>/BBB/'

/home/lee#cat tmp
AAA bbbbb AAA hjkgdf
AAAA bbbbb AAA hjkgdf
AAAAA bbbbb AAA hjkgdf
AAA bbbbb AAA hjkgdf
/home/lee#sed 's/\<AAA\>/BBB/g' tmp
BBB bbbbb BBB hjkgdf
AAAA bbbbb BBB hjkgdf
AAAAA bbbbb BBB hjkgdf
BBB bbbbb BBB hjkgdf

论坛徽章:
0
16 [报告]
发表于 2005-03-29 21:29 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

[quote]原帖由 "寂寞烈火"]sed 's/\<AAA\>/BBB/'[/quote 发表:


考虑一下 AAAC

论坛徽章:
0
17 [报告]
发表于 2005-03-29 22:43 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

题目在这点上没说清,如果是AAAC BAAA这样的也要替换掉的话
  1. sed 's/^AAA\([^A]\)/BBB\1/;s/\([^A]\)AAA\([^A]\)/\1BBB\2/g;s/\([^A]\)AAA$/\1BBB/' file
复制代码

俺不写那么完美的正则,俺替换三次,总行了吧

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
18 [报告]
发表于 2005-03-29 23:53 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

原帖由 "lightspeed" 发表:


考虑一下 AAAC

嘻嘻,越看越糊涂   

论坛徽章:
0
19 [报告]
发表于 2005-03-30 01:38 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

原帖由 "一梦如是"]sed 's/^AAA\([^A]\)/BBB\1/;s/\([^A]\)AAA\([^A]\)/\1BBB\2/g;s/\([^A 发表:
\)AAA$/\1BBB/' file

俺不写那么完美的正则,俺替换三次,总行了吧


还差一次  s/^AAA$/BBB/

论坛徽章:
0
20 [报告]
发表于 2005-03-30 11:51 |只看该作者

awk和sed只替换AAA为BBB而不替换AAAA为BBBA,如何实现

呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP