LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: KornLee

考考你?[关于数组]

[复制链接]
 楼主| 发表于 2003-9-11 23:09:36 | 显示全部楼层
最初由 idkey 发表
$ cat aaa
是 而 发 人 个的 要 他 欧是 片 爱 是 的 发 个 没是发发 那 从
$ echo `cat aaa | tr ' ' '\n' | LC_ALL=C sort`
爱 从 的 而 发 发 个 个的 没是发发 那 欧是 片 人 是 是 他 要

不好意思问一下: LC_ALL=C sort 是什么? :ask
麻烦给解释解释:thank
发表于 2003-9-12 09:11:28 | 显示全部楼层
在 sort 的运行空间中加上 LC_ALL=C 这个环境变量,主要是让 sort 以比特值进行排序,不然它会按本地编码中的顺序排,就不是我们想要的结果了。
发表于 2005-4-17 23:25:41 | 显示全部楼层

我来试第一个

#!/bin/ksh
a_array="abcde"
set -A A_array a b c d e
b_array="afcgwe"
cat_array="abcdeafcgwe"
len_a=${#a_array}
len_b=${#b_array}
((len_cat=$len_a + $len_b))
echo "SAME\tDIFFERENT"
                                                                                             
for i in ${A_array
  • }; do
       tmp_arr=$cat_array
       tmp_arr=${tmp_arr##*$i}
       tmp_len=${#tmp_arr}
    #  echo $tmp_arr $tmp_len $i
       if [ "$tmp_len" -lt "$len_b" ]
       then
          echo "$i\c"
       else
          echo "\t$i\c"
       fi
       echo
    done
    不好意思怎样用代码呀??
  • 回复 支持 反对

    使用道具 举报

    发表于 2005-4-29 17:46:14 | 显示全部楼层
    如何实现
    输入 音乐电影
    建立 音 乐 电 影 4个文件夹?
    回复 支持 反对

    使用道具 举报

    发表于 2005-4-30 01:22:17 | 显示全部楼层
    学习呀学习
    回复 支持 反对

    使用道具 举报

    发表于 2006-2-14 09:38:05 | 显示全部楼层
    哇,2002年的贴子啊,我来perl的

    #! /usr/bin/perl

    my @a=qw/a b c d e/;
    my @b=qw/a f c g w e/;
    my (@c,@d);                       # c 表示共有的,d表示a有b没有

    foreach my $item (@a) {
      push(@c,$item) if grep /^$item$/,@b;
      push(@d,$item) if grep !/^$item$/,@b;
    }

    print "@c\n";
    print "@d\n";
    回复 支持 反对

    使用道具 举报

    发表于 2006-9-12 13:59:31 | 显示全部楼层
    用comm就ok了!
    comm 23 urlfile1 urlfile2
    回复 支持 反对

    使用道具 举报

    发表于 2006-9-27 11:14:45 | 显示全部楼层
    我觉得用awk也可以实现。但是,我就是组织不起来代码?谁能写出来。让俺看看。谢谢了
    回复 支持 反对

    使用道具 举报

    发表于 2006-9-29 17:55:47 | 显示全部楼层
    cat gg1>ggg
    cat gg2>>ggg
    awk '{
    if(NR==1) split($0,a);else if(NR==2) split($0,b)
      for(i in a){
          for(j in b)
               if(a==b[j]){
                   print "======",a,b[j];
                  }
           }
    }' ggg
    但是,在gg1不在gg2里的字母打印不出来,
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表