我需要你的帮助:我有两个文件,我需要根据前两列(a b)将文件1的行与文件2的行匹配,以便创建一些输出文件。两个文件具有相同的结构但内容不同。我写了一个脚本,它运行正常。但我还有一个问题:在某些情况下,文件1(a b)的代码永远不会与文件2的代码匹配。是否有选项可以引用这些情况?对不起,我是一个完全的初学者...
以下是我的代码的样子:
rs.exe
答案 0 :(得分:0)
在某些情况下,文件1(a b)的代码永远不会与文件2的代码匹配。是否可以选择引用这些案例?
您可以在内部while
循环中设置状态标记,以跟踪该行是否找到匹配项。在内循环之外,你可以处理这种特殊情况。
我还没有测试过,但这样的事情应该有效:
#!/bin/bash
while read file1
do
file1_line=( ${file1_lines[$counter_file1]} )
file1_a=${file1_line[0]}
file1_b=${file1_line[1]}
had_match=0
while read line_file2
do
file2_line=( ${file2_lines[$counter_file2]} )
file2_a=${file2_line[0]}
file2_b=${file2_line[1]}
if ["file1_a" == "file2_a"] && ["file1_b" == "file2_b"]
then
had_match=1
echo "TRUE"
else
counter_file2=[counter_file2+1]
fi
done < $file2
if (( had_match == 0 )); then
# Do something special here
fi
counter_file2=0
counter_file1=$[counter_file1+1]
done