有多少个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