Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 逐行比较:unix中的两个文件_File_Unix - Fatal编程技术网

File 逐行比较:unix中的两个文件

File 逐行比较:unix中的两个文件,file,unix,File,Unix,亲民党的情况。我有两个文件 文件1 文件2 现在我想比较file1和file2的FirstName1。如果匹配,则将file1的LastName1与File2的LastName1进行比较 如果这些值中的任何一个不符合马赫数,则应将记录写入日志文件 完成此操作后,转到第二个记录 有人能深入了解一下吗……使用以下标准unix命令 diff sdiff 这也将有助于理解diff和sdiff之间的区别 您还可以编写一个脚本来比较这两个文件中的记录。diff最适合于您想要做的事情,但是如果您想在这种情况

亲民党的情况。我有两个文件

文件1

文件2

现在我想比较file1和file2的FirstName1。如果匹配,则将file1的LastName1与File2的LastName1进行比较

如果这些值中的任何一个不符合马赫数,则应将记录写入日志文件

完成此操作后,转到第二个记录


有人能深入了解一下吗……

使用以下标准unix命令

diff
sdiff
这也将有助于理解diff和sdiff之间的区别


您还可以编写一个脚本来比较这两个文件中的记录。

diff最适合于您想要做的事情,但是如果您想在这种情况下执行更多操作,假设文件格式正确,这里有一个片段

./compare.sh <file1> <file2>

第一:欢迎来到SO。这可能有助于你相处,所以:回答你的问题是你需要的工具。谢谢你的回答。。这里使用的文件名是什么?是f1吗?你一开始说的1美元是什么意思。。。提前感谢。实际上,脚本将您的2个文件作为参数
cat$1
将读取第一个文件(参数),而您稍后在脚本中有一个
cat$2
作为第二个文件(参数)。我编辑了它,使它更清晰。
diff
sdiff
./compare.sh <file1> <file2>
#!/bin/bash

line_number=0

cat $1 | while read line_f1; do

    line_number=$((line_number + 1))

    line_f2=$(cat $2 | sed "${line_number}q;d")

    echo "line f1 : ${line_f1}"
    echo "line f2 : ${line_f2}"

    firstname_f1=$(echo ${line_f1} | cut -f1 -d' ')
    firstname_f2=$(echo ${line_f2} | cut -f1 -d' ')
    lastname_f1=$(echo ${line_f1} | cut -f2 -d' ')
    lastname_f2=$(echo ${line_f2} | cut -f2 -d' ')

    echo "firstname f1 : ${firstname_f1}"
    echo "firstname f2 : ${firstname_f2}"
    echo "lastname f1 : ${lastname_f1}"
    echo "lastname f2 : ${lastname_f2}"

    if [ ! "${firstname_f1}" = "${firstname_f2}" ]; then
        echo "Differents Firstnames"
    fi

    #... place here other tests ...

done