Removing duplicates on a variable without sorting

后端 未结 8 1062
陌清茗
陌清茗 2020-12-28 23:30

I have a variable that contains the following space separated entries.

variable=\"apple lemon papaya avocado lemon grapes papaya apple avocado mango banana\"         


        
8条回答
  •  自闭症患者
    2020-12-28 23:52

    shell

    declare -a arr
    variable="apple lemon papaya avocado lemon grapes papaya apple avocado mango banana"
    set -- $variable
    count=0
    for c in $@
    do
        flag=0
        for((i=0;i<=${#arr[@]}-1;i++))
        do
            if [ "${arr[$i]}" == "$c" ] ;then
                flag=1
                break
            fi
        done
        if  [ "$flag" -eq 0 ] ; then
            arr[$count]="$c"
            count=$((count+1))
        fi
    done
    for((i=0;i<=${#arr[@]}-1;i++))
    do
       echo "result: ${arr[$i]}"
    done
    

    Result when run:

    linux# ./myscript.sh
    result: apple
    result: lemon
    result: papaya
    result: avocado
    result: grapes
    result: mango
    result: banana
    

    OR if you want to use gawk

    awk 'BEGIN{RS=ORS=" "} (!($0 in a) ){a[$0];print}'
    

提交回复
热议问题