2010-07-06 5 views
0

쉘 스크립팅을 처음 사용합니다.두 변수의 차이점

나는 두 개의 문자열이나 두 변수의 값의 차이를 얻을 수있는 방법이 있는지 알고 싶습니다. 내가 할 수있는 방법이

value1 = "alok" 
value2 = "kumar alok" 

그래서 난

result = value1~value2 

내 예상 된 결과가

result="kumar" 

같이 결과를 얻으려면 :

두 가지 변수가있다 ?

는 사람이 ...

감사

Alok.Kr.를 도와 또는 나에게 그것을 할 수있는 방법으로 몇 가지 제안을 줄 수

+1

"aaa bbb ccc ddd"와 "aaa ccc"는 어떨까요? 당신의 차이가 얼마나 진보적입니까? –

답변

1

여기 awk로 간단한 방법

value1="alok" 
value2="kumar alok" 
awk -v v1="$value1" -v v2="$value2" 'BEGIN{ 
    if(length(v2) >= length(v1)){ 
    sub(v1,"",v2) 
    print v2 
    } 
}' 

$ ./shell.sh 
kumar 
+0

감사합니다. Alok.Kr. –

1

아마 당신이 라세 V.Karlsen가 말한대로 this

1

봐이 필요합니다, 당신이 다른 상황에서 싶어 정확히 무엇에 많이 의존하지만, 다음과 같은 시도 할 수 :

result=`comm -3 <(for i in $value1; do echo $i; done | sort) \ 
       <(for i in $value2; do echo $i; done | sort)` 

이렇게하면 value1 또는 value2에있는 단어를 모두 표시 할 수 있지만 둘 다 표시하지는 않습니다. (즉, 만 value1의 모든 단어를 떠나.) value1에없는 그 value2에있는 모든 단어를 얻을 수 -12-3 변경 예를 들어

:

value1="alok" 
value2="kumar alok" 
result=`comm -3 <(for i in $value1; do echo $i; done | sort) <(for i in $value2; do echo $i; done | sort)` 
echo $result 

인쇄

kumar