Chinaunix

标题: 脚本求助!统计一个字符串中字符在另一个字符串中出现情况 [打印本页]

作者: breeze7086    时间: 2010-11-10 14:29
标题: 脚本求助!统计一个字符串中字符在另一个字符串中出现情况
假设有两个字符串A,B都为4位
现在,我每次取B的一个字符,在A中查询,如果存在的话,无论其字符在什么位置就将变量var增1
然后,取B的第二个字符,再次在A中查询,存在的话则var继续增1
现在的问题是,这种情况A=1000,B=1100,那么运算出来,var就变为了2,但我需要的是var为1,因为B中的字符“1”在A中出现,但A中只有1个,第二次匹配到的时候应该忽略

请教各位,应该如何解决啊
先谢谢了
作者: 好看的附件    时间: 2010-11-10 15:46
回复 1# breeze7086


    比较笨的方法:
   数据放到2个文件中
  awk  'BEGIN{FS=OFS=""}NR==FNR{for(i=1;i<=NF;i++)a[$i]++;next}{for(j=1;j<=NF;j++){if($j in a){var++;if(--a[$j]==0)delete a[$j]}}}END{print var}' file1 file2
作者: waker    时间: 2010-11-11 10:01
本帖最后由 waker 于 2010-11-11 10:02 编辑

如果B里面没re中的特殊字符
  1. A=XXOO B=OOXX
  2. B="[$B]"
  3. echo "$A"|grep -o "$B"|sort|uniq -c
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2