如何在bash中比較字串?我只想比較單詞,不想比較詞序 例如,我有一個變數
VAR1=eu-endpoint-2021.09.20 prod-store-2021.09.20 service-trace-2021.09.20
還有另一個變數,存盤相同的資訊,但順序不同
。VAR2=prod-store-2021.09.20 eu-endpoint-2021.09.20 service-trace-2021.09.20
我怎樣才能只按字數進行比較? 也不按字數順序 例如
if $VAR1 == $VAR2
然后
do smth;
else
do smth;
f
uj5u.com熱心網友回復:
由于你的輸入字串只包含不包含任何空格的部分,我們可以
- 將字串轉換為一個新的字串。
- 將字串轉換為陣列
($VAR1) - 在陣列1上進行回圈。在Bash中遍歷一個字串陣列?
- 檢查當前元素是否存在。
- 檢查陣列2中是否存在當前元素。檢查Bash陣列是否包含一個值。
- 如果不是,將結果設定為
false,并跳出回圈 。
- 如果不是,將結果設定為
#!/bin/bash
VAR1='eu-endpoint-2021.09.20 prod-store-2021.09.20 service-trace-2021.09.20'
VAR2='prod-store-2021.09.20 eu-endpoint-2021.09.20 service-trace-2021.09.20'
ARR1=($VAR1)
ARR2=($VAR2)
RES=1
for i in "${ARR1[@]}"/span>; do
[[ ! " ${ARR2[*]}" =~ " ${i}"]] & & RES=0 && break。
完成了。
[$RES -eq 1] && echo 'Equal' || echo 'not equal'
uj5u.com熱心網友回復:
我只是對它們進行排序,然后比較結果,例如:
$ VAR1='eu-endpoint-2021.09.20 prod-store-2021.09.20 service-trace-2021.09.20'/span>
$ VAR2='prod-store-2021.09.20 eu-endpoint-2021.09.20 service-trace-2021.09.20'。
<p>
$ if [[ $(tr ' ' ' ' <<<"$VAR1"| sort) = $(tr ' ' '
' <<<"$VAR2" | sort) ]]; then echo same; else echo diff; fi
相同的
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324763.html
標籤:
