【发布时间】:2014-08-28 12:20:33
【问题描述】:
我正在尝试通过两个 .txt 文件来查找匹配项,并且只打印唯一的行。我有一个数字和名称列表以及第二个仅包含部分数字的列表。
文件格式是这样的
5553239090,蝙蝠侠
第二个文件只有六个数字
555323
我想确保只取出与前六个数字匹配的行,因此如果我有 239090,我不希望它取出该行。到目前为止,我发现有效的是这个
while read line
do
echo $line
while read line2
do
if [[ "${line:0:6}" != "$line2" ]]; then
echo $line >> uniqueList2.txt
echo ${line:0:6}
fi
done < file2.txt
done < file1.txt
由于某种原因,它并没有取出所有匹配项,只是其中一些匹配项。似乎它与 file2 顶部的数字最匹配,并且列表越靠下,就越有可能错过它。
有什么我错过的或更好的方法吗?
【问题讨论】:
标签: macos bash loops while-loop