我正在研究KSH中的问题,需要获取两个逗号分隔列表并进行比较,然后输出差异。
示例输入1:苹果,香蕉示例输入2:苹果,香蕉,猕猴桃
输出:猕猴桃
我假设我需要将列表放入数组中,并将列表1中的每个字符串与列表2进行比较。
for fruit in $fruits
do
if [[ fruit[1] == fruit1[1] ]]
then
echo "fruit is the same"
else
echo "fruit is not in the list. difference found."
echo $fruit
fi
有人知道我该怎么做吗?
谢谢
寻找两个列表的补充:
$ a="1,2,3,4,5"
$ b="2,3,4,5,6"
$ echo $a,$b | tr , "n" | sort | uniq -u
1
6
或相同,但是分开的列表(例如,如果您需要其他预处理):
$ sort <(echo $a | tr , "n") <(echo $b | tr , "n") | uniq -u
1
6
一种可能的解决方案可能是:
localhost> cat file1
苹果,香蕉,猕猴桃,苹果
localhost> cat file2
苹果,香蕉,珠宝,土豆
EAISEST解决方案是:
cat file1 | tr , 'n' | sort
> file3
cat file2 | tr , 'n' | sort
> file4
comm -3 file3 file4
输出:
苹果
珠宝
奇异果
马铃薯