我有两个变量:
a=`echo 262832 6469180`
b=`echo 262832 263159 6469180 6469390`
因此:
echo $a
262832 6469180
echo $b
262832 263159 6469180 6469390
" B"表示四个UTM坐标,它们从西向东排列,从南向北排列(即W E S N)。变量" b"包含" a"只有两个位置。因此,在" b"之间进行比较之后和" a"我需要打印" 1"和" 3"。问题是我还需要更换" 1"和" 3"由" W"和" S"。
我按如下方式进行比较:
if [[ $b == *"$a"* ]]
then
echo "a is in b"
else
echo "not there"
fi
但是没有正确的想法进行输出替换(根据我的理解,它应该是列。)
欢迎提出任何指示,
答案 0 :(得分:2)
您可以使用bash
arrays轻松完成:
wesn=( W E S N )
a=( 262832 6469180 )
b=( 262832 263159 6469180 6469390 )
for ((i=0; i < ${#b[@]}; i++)); do
for ((j=0; j < ${#a[@]}; j++)); do
[ "${b[i]}" == "${a[j]}" ] && echo "${wesn[i]}"
done
done
它只是按成员比较成员并返回wesn
中映射的字母。