5

diff(または別の簡単な bash コマンド)を使用して、2 つのファイルの最初の行が等しいかどうかを確認することはできますか?

k[一般的に、最初/最後の行、または i から j までの行の同等性をチェックする]

4

4 に答える 4

9

2 つのファイルの最初の k 行を比較するには:

$ diff <(head -k file1) <(head -k file2)

同様に、最後の k 行を比較するには:

$ diff <(tail -k file1) <(tail -k file2)

行 i から j を比較するには:

diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2)
于 2012-05-03T08:48:13.153 に答える
2

上記のdogbaneのソリューションと比較すると、私のソリューションはかなり基本的で初心者のように見えますが、ここではすべて同じです!

echo "Comparing the first line from file $1 and $2 to see if they are the same."

FILE1=`head -n 1 $1`
FILE2=`head -n 1 $2`

echo $FILE1 > tempfile1.txt
echo $FILE2 > tempfile2.txt

if diff "tempfile1.txt" "tempfile2.txt"; then
    echo Success
else
    echo Fail
fi
于 2012-05-03T09:02:37.593 に答える
1

私のソリューションでは、 patchutilsプログラム コレクションのfilterdiffプログラムを使用します。次のコマンドは、file1 と file2 の行番号 j から k までの違いを示しています。

diff -U 0 file1 file2 | filterdiff --lines j-k
于 2012-05-03T10:39:48.980 に答える
0

以下のコマンドは、両方のファイルの最初の行を表示します。

krithika.450> head -1 temp1.txt temp4.txt
==> temp1.txt <==
Starting CXC <...> R5x BCMBIN (c)  AB 2012

==> temp4.txt <==
Starting CXC <...> R5x BCMBIN (c)  AB 2012

以下のコマンドは、両方のファイルの最初の行が等しい場合、yes を表示します。

krithika.451> head -1 temp4.txt temp1.txt | awk '{if(NR==2)p=$0;if(NR==5){q=$0;if(p==q)print "yes"}}'
yes
krithika.452> 
于 2012-05-03T08:50:45.370 に答える