Scripting 如何求两个变量的差

Scripting 如何求两个变量的差,scripting,shell,Scripting,Shell,我不熟悉shell脚本 我想知道有没有一种方法可以得到两个字符串的差或者两个变量的值 有两个变量: value1 = "alok" value2 = "kumar alok" 所以我想得到一个结果 result = value1~value2 我的预期结果是 result="kumar" 我有什么办法可以做吗 有人可以帮助我或给我一些建议的方式可以做到这一点 谢谢 Alok.Kr.您可能需要看看 也许你需要看看 正如Lasse V.Karlsen所说,这在很大程度上取决于您在不同情况下

我不熟悉shell脚本

我想知道有没有一种方法可以得到两个字符串的差或者两个变量的值

有两个变量:

value1 = "alok"  
value2 = "kumar alok"
所以我想得到一个结果

result = value1~value2
我的预期结果是

result="kumar"
我有什么办法可以做吗

有人可以帮助我或给我一些建议的方式可以做到这一点

谢谢


Alok.Kr.

您可能需要看看
也许你需要看看

正如Lasse V.Karlsen所说,这在很大程度上取决于您在不同情况下想要得到什么,但您可以尝试以下方法:

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

kumar

正如Lasse V.Karlsen所说,这在很大程度上取决于你在不同情况下想要得到什么,但你可以尝试以下方法:

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

kumar

这里有一个使用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

这里有一个使用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
那么“aaa bbb ccc ddd”和“aaa ccc”呢?你希望你的差距有多大?那么“aaa bbb ccc ddd”和“aaa ccc”呢?你希望你的差距有多大?