比较两个文件中的字段并在shell中打印到另一个文件

时间:2018-01-11 17:17:02

标签: linux shell awk

请帮我解决以下问题。我想在shell脚本中的第三个文件中打印值

文件格式应符合以下标准 a_file - col1 col2 col3 b_file - col1 col2

。 a_file - col1 col2 col3 1 P I 1 1Q JI

.b_file 1我

如何将a_file的第一个字段和第三个字段与b_file的第一个和第二个字段进行比较?任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

好吧,如果我理解你的问题,最简单的方法是逐行读取这两个文件,比较指定的列并将自定义输出写入第3个文件。

 # read 3 columns from file descriptor 11 and two columns from file descriptor 12
 while read -u 11 acol1 acol2 acol3 && read -u 12 bcol1 bcol2; do
    # do comparisions betweencolumns
    if [ $acol1 = $bcol1 -a $acol3 = $bcol2 ]; then
       echo Comparision true
       # print values in 3rd file in shell scripting
       echo $acol1 $bcol1 $acol3 $bcol2 >>3rd_file
    else
       echo Comparision false
    fi
  # bind a_file to 11 file descriptor, and b_file to 12 file descriptor
  done 11<a_file 12<b_file