免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3254 | 回复: 19

[文本处理] 求两者之间的差别 [复制链接]

论坛徽章:
0
发表于 2012-12-18 15:50 |显示全部楼层
  1. a="autofs_ldap_auth config conman dhcp6c dnsmasq esd gcof gpm-root grub gssapi_mech host   test idmapd initlog jwhois krb5 ldap ld ld lftp libaudit libuser logrotate ltrace man mcelog mke2fs mke4fs modprobe mtools multipath nscd nsswitch ntp oddjobd oddjobd pam_smb prelink prelink reader reader redis_cache_2 redis_persistent_2 redis_persistent_2 request-key resolv rsyncd scsi_id sestatus smartd sysconfig sytl syslog td updtedb warnquota xinetd yp yum"
  2. b="autofs_ldap_auth config conman dhcp6c dnsmasq esd gconf gpm-root grub gssapi_mech host idmapd initlog jwhois krb5 ldap ld ld lftp libaudit libuser logrotate ltrace man mcelog mke2fs mke4fs modprobe mtools multipath nscd nsswitch ntp oddjobd oddjobd pam_smb prelink prelink reader reader redis_cache_2 redis_persistent_2 redis_persistent_2 request-key resolv rsyncd scsi_id sestatus  join  smartd sysconfig sysctl syslog tcsd updab warnquota xinetd yp yu"
复制代码
求帮忙解答
怎么把a特有的字符串和b特有的字符串弄出来,他们两个相同的?

论坛徽章:
0
发表于 2012-12-18 16:00 |显示全部楼层
不想用两个for循环
求大神高招
jomenxiao 发表于 2012-12-18 15:50
求帮忙解答
怎么把a特有的字符串和b特有的字符串弄出来,他们两个相同的?

论坛徽章:
0
发表于 2012-12-18 16:07 |显示全部楼层
用diff 试试

论坛徽章:
0
发表于 2012-12-18 16:28 |显示全部楼层
diff 肯定不行
diff 是比较file之间的
回复 3# 3300jiu45


   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2012-12-18 16:45 |显示全部楼层
回复 4# jomenxiao

没测试,
    diff <<<${a// /\n} <<<${b// /\n}

论坛徽章:
0
发表于 2012-12-18 17:00 |显示全部楼层
不行
回复 5# yinyuemi


   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2012-12-18 17:17 |显示全部楼层
本帖最后由 yinyuemi 于 2012-12-18 17:32 编辑

回复 6# jomenxiao


      
M没环境测试,难道是
    diff <(echo ${a// /\\n}) <(echo ${b// /\\n})
不行的话试试
diff <(echo $a|sed 's/ /\n/') <(echo $b|sed 's/ /\n/')

论坛徽章:
0
发表于 2012-12-18 17:42 |显示全部楼层
diff <<<$(echo ${a} |sed 's/ /\n/g') <<<$(echo ${b}|sed 's/ /\n/g')

diff: missing operand after `diff'
转化成输入后还是不行
man diff 明确指出只用于file比较

a和b中的顺序可能是错乱的,这样对比出来的可能还是不行

可不可以用awk实现?

回复 7# yinyuemi


   

论坛徽章:
0
发表于 2012-12-18 18:31 |显示全部楼层
  1. #!/bin/sh
  2. #
  3. sed -n -e '1w tmp1' -e '2w tmp2' $1
  4. sed -i 's/ /\n/g' tmp1 tmp2
  5. diff tmp1 tmp2 > diff_result.txt
  6. rm tmp1 tmp2
复制代码
如果只是自己看的话用
vimdiff 比 diff
更方便

论坛徽章:
28
ChinaUnix元老
日期:2015-02-02 08:55:392017金鸡报晓
日期:2017-01-10 15:13:29CU十四周年纪念徽章
日期:2018-08-29 22:12:2715-16赛季CBA联赛之深圳
日期:2018-09-20 12:21:09
发表于 2012-12-18 19:42 |显示全部楼层
回复 8# jomenxiao
  1. grep -vxFf <(echo $a|sed 's/ /\n/g') <(echo $b|sed 's/ /\n/g')
复制代码
  1. grep -vxFf <(echo $b|sed 's/ /\n/g') <(echo $a|sed 's/ /\n/g')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

ITPUB技术栈

ITPUB技术栈是ITPUB企业打造的垂直于IT领域的知识社群平台,在这里,你既可以是创作者也可以是消费者。如果你的IT生涯丰富多彩,喷薄的个人价值尽可在小栈内体现;如果你渴望找到志同道合的伙伴,拓宽人脉,小栈比跑会场更快。 小栈特色:
1.极高的用户转化率,实现更直接的知识变现;
2.随时随地,刷个朋友圈的时间,实现更长效的信息沉淀;
3.戳痛、难点的专业咨询,更接近成功解决方案的时刻;
4.贴近意见领袖,个人高速成长,迈入更富有价值的人际圈。

----------------------------------------

技术小栈>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP