2016-11-17 24 views
-1

之間的計數差異我試圖做一個bash腳本來計算兩個單詞之間的差異,並刪除它們之間少於2個不同字符的單詞。單詞bash

示例輸入文件:

hello 
heggo 
helloso 
good 
god 
face 
fake 
rage 

輸出將是:都已經格式化

hello 
heggo 
helloso 
rage 

輸入文件要與小寫字母alphabetticaly排序,每行只有一個字。

丟棄的話是:從神

好 - 只有一個字母之差,只有一個額外的「O」

神 - 同不錯

臉 - 只有C是從其他不同話。

假 - 只有K不同於其他詞。

¿任何想法來處理這個?

+4

您是否編寫了任何代碼? – anubhava

+0

你在比較每個單詞與其他單詞嗎? – 123

+0

不,我沒有任何線索可以處理這個 – Carlimedes

回答

0

這應該根據您的描述和意見。 由於有兩個oo,詞彙「good」也會保留。 一般而言,任何位置都有兩個相同字母的單詞將被保留。

datasource=$(cat b.txt) 
newdata="" 
while IFS='' read -r line; do 
found=0 
readarray word < <(echo "$line" |fold -w1) #splits each line in a char array 
    for eachletter in ${word[@]}; do 
     found=$(echo "$line" | grep -o $eachletter |wc -w) 
     if [[ $found -ge 2 ]] && [[ ${newdata[@]} != *"$line"* ]]; then 
      newdata+=("$line") 
     fi 
    done 
unset word eachletter found 
done <<< "$datasource" 
echo -e "New Data \n" 
printf '%s\n' ${newdata[@]} # >newfile.txt