如果文件1中的代码永远不匹配文件2中的代码,则写入输出文件

时间:2017-04-06 15:19:13

标签: bash string-matching

我需要你的帮助:我有两个文件,我需要根据前两列(a b)将文件1的行与文件2的行匹配,以便创建一些输出文件。两个文件具有相同的结构但内容不同。我写了一个脚本,它运行正常。但我还有一个问题:在某些情况下,文件1(a b)的代码永远不会与文件2的代码匹配。是否有选项可以引用这些情况?对不起,我是一个完全的初学者...

以下是我的代码的样子:

rs.exe

1 个答案:

答案 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