有多少個I比較兩個逗號分隔列表(主和輸入)並列出它們之間的共同值(結果),同時保留主列表中元素的順序。例如:比較兩個逗號分隔的字符串並列出公共值
案例1:
master="common,city,country"
input="city,country"
result="city,country"
的情況下2:
master="common,city,country"
input="country,pig,cat,common"
result="common,country"
的情況下3:
master="common,city,country"
input="pigs,cars,train"
result="nothing found"
這是我的嘗試:
result="$(awk -F, -v master_list=$master'{ for (i=1;i<=NF;i++) { if (master_list~ $i) { echo $i } } } END ' <<< $input)"
謝謝。當輸入來自用戶時,當master已經被定義爲變量時,我試圖改變你的腳本。然而,看起來我犯了一些錯誤: result =「$(awk -F,-va = $ master'{for(i = 1; i <= NF; i ++){if(a〜$ i ){print $ i}}}'<<< $ input)「 – Jaanna
你沒有改變我的密碼,你正在重寫我的密碼。您正在使用不同的方法來解決問題。不知道你爲什麼把評論放在我的答案下。如果'master'是由用戶提供的,則沒有區別。我使用'master'作爲**已經定義的** shell變量,'$ input' @Jaanna也是如此 – Kent