如何比较两个文件,一个有不同的字段,另一个是c文件,使用shell脚本?

时间:2016-04-18 06:56:10

标签: c linux bash shell awk

我有以下两个文件:

File1中:

#include<stdio.h>   printf,scanf
#include<string.h>  strcpy,strcat,strlen
#include<time.h>    time

file2.c中:

int main {
    char str1[20] = "BeginnersBook";
    printf("Length of string str1: %d", strlen(str1));
    return 0;
}

我们必须在file2中搜索file1(field2)的功能。如果它们存在,那么我们应该将结果写入名为output的不同文件。它应该只包含文件名,相应的头文件应该像

那样
File2:headerfile1,headerfile2

这可能与grepawk

有关

2 个答案:

答案 0 :(得分:0)

您可以将file1转换为模式列表(每行一个),并将其用作

的参数
grep -f patterns file2

答案 1 :(得分:0)

使用以下脚本

#!/bin/sh
HEAD=
while read p; do
    i=1;
    for word in $p;do
        if [ "$i" = "1" ];then
            HEAD=$word
            echo "header = $HEAD"
        else
            FOUND=0
            for j in $(echo "$word" | tr "," "\n");do
                if grep -Fq "$j" file2.c
                then
                    FOUND=1
                fi
                if ["$FOUND" = "1" ];then
                    #write it into your c file; I am skipping that code
                fi
            done
        fi
        i=0
    done
done < file1