我是shell脚本的新手。
我想知道有没有办法让两个字符串或两个变量的值有所不同。
有两个变量:
value1 = "alok"
value2 = "kumar alok"
所以我想得到一个结果
result = value1~value2
我的预期结果是
result="kumar"
有什么方法可以做到吗?
有人可以帮助我,或者以可行的方式给我一些建议......
由于
Alok.Kr。
答案 0 :(得分:1)
可能你需要看看 this
答案 1 :(得分:1)
正如Lasse V.Karlsen所说,这在很大程度上取决于你想在不同情况下得到什么,但你可以尝试以下方法:
result=`comm -3 <(for i in $value1; do echo $i; done | sort) \
<(for i in $value2; do echo $i; done | sort)`
这会为您提供value1
或value2
中的所有字词,但不会同时显示两者。将-3
更改为-12
以获取value2
中不在value1
中的所有字词(即仅在value1
中遗漏任何字词。)
例如:
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
答案 2 :(得分: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