亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 求兩者之間的差別 [打印本頁]

作者: jomenxiao    時間: 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特有的字符串弄出來,他們兩個相同的?

作者: jomenxiao    時間: 2012-12-18 16:00
不想用兩個for循環(huán)
求大神高招
jomenxiao 發(fā)表于 2012-12-18 15:50
求幫忙解答
怎么把a特有的字符串和b特有的字符串弄出來,他們兩個相同的?

作者: 3300jiu45    時間: 2012-12-18 16:07
用diff 試試
作者: jomenxiao    時間: 2012-12-18 16:28
diff 肯定不行
diff 是比較file之間的
回復 3# 3300jiu45


   
作者: yinyuemi    時間: 2012-12-18 16:45
回復 4# jomenxiao

沒測試,
    diff <<<${a// /\n} <<<${b// /\n}
作者: jomenxiao    時間: 2012-12-18 17:00
不行
回復 5# yinyuemi


   
作者: yinyuemi    時間: 2012-12-18 17:17
本帖最后由 yinyuemi 于 2012-12-18 17:32 編輯

回復 6# jomenxiao


      
M沒環(huán)境測試,難道是
    diff <(echo ${a// /\\n}) <(echo ${b// /\\n})
不行的話試試
diff <(echo $a|sed 's/ /\n/') <(echo $b|sed 's/ /\n/')
作者: jomenxiao    時間: 2012-12-18 17:42
diff <<<$(echo ${a} |sed 's/ /\n/g') <<<$(echo $|sed 's/ /\n/g')

diff: missing operand after `diff'
轉化成輸入后還是不行
man diff 明確指出只用于file比較

a和b中的順序可能是錯亂的,這樣對比出來的可能還是不行

可不可以用awk實現(xiàn)?

回復 7# yinyuemi


   
作者: udevu    時間: 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
更方便
作者: Shell_HAT    時間: 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')
復制代碼

作者: rongpmcu    時間: 2012-12-18 20:24
回復 10# Shell_HAT
我覺得如果有重復的行,那這個就會有問題了 呵呵
   
作者: Shell_HAT    時間: 2012-12-18 21:02
回復 11# rongpmcu


    詳細說說是什么問題
作者: rongpmcu    時間: 2012-12-19 09:17
回復 12# Shell_HAT

你給出的命令我理解的是:每次讀后面的文件一行,然后用前面文件里面的文本當模式依次去匹配那一行, 如果文本a的里面有aaaa字串,那么文本b的任何地方有aaaa字串都會匹配
   
作者: Shell_HAT    時間: 2012-12-19 09:25
回復 13# rongpmcu


    那么,你的試驗結果呢?
作者: jomenxiao    時間: 2012-12-19 09:41
本帖最后由 jomenxiao 于 2012-12-19 09:54 編輯

test: line 5: syntax error near unexpected token `('
test: line 5: `grep -vxFf <(echo ${a} |sed 's/ /\n/g') <(echo $ |sed 's/ /\n/g')'


終端下沒問題
但是我換到腳本里就不行了
求大俠解釋?
回復 10# Shell_HAT


   
作者: jason680    時間: 2012-12-19 09:53
本帖最后由 jason680 于 2012-12-19 09:54 編輯

回復 1# jomenxiao

How about this

$ echo -e "$a\n$b" | awk '{for(n=0;n++<NF;){if(NR==1)a[$n]=1;else if($n in a)printf $n" "}}END{print""}'
autofs_ldap_auth config conman dhcp6c dnsmasq esd 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 smartd sysconfig syslog warnquota xinetd yp

   
作者: rongpmcu    時間: 2012-12-19 10:26
回復 14# Shell_HAT


   我沒有找到好的比對方法,呵呵  
作者: Shell_HAT    時間: 2012-12-19 11:05
回復 15# jomenxiao
  1. #!/bin/bash
  2. 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"
  3. 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"
  4. grep -vxFf <(echo ${a} |sed 's/ /\n/g') <(echo $ |sed 's/ /\n/g')'
復制代碼
  1. ./test.sh
復制代碼

作者: jomenxiao    時間: 2012-12-19 14:21
謝謝大俠的細心幫忙

應該是我的習慣導致的問題吧?


[root@localhost tmp]# ll test
-rw-r--r-- 1 root root 108 Dec 19 14:17 test
[root@localhost tmp]# cat test

a="1 2 43 6 a d c"
b="1 3 43 6 c g k"
grep -vxFf <(echo ${a} |sed 's/ /\n/g') <(echo $ |sed 's/ /\n/g')
[root@localhost tmp]# sh test
test: line 4: syntax error near unexpected token `('
test: line 4: `grep -vxFf <(echo ${a} |sed 's/ /\n/g') <(echo $ |sed 's/ /\n/g')'
[root@localhost tmp]# chmod +x test
[root@localhost tmp]# sh test
test: line 4: syntax error near unexpected token `('
test: line 4: `grep -vxFf <(echo ${a} |sed 's/ /\n/g') <(echo $ |sed 's/ /\n/g')'
[root@localhost tmp]# ./test
3
g
k


回復 18# Shell_HAT


   
作者: yezj2004    時間: 2012-12-21 01:50
終于看完了~~~




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2