2012-05-03 9 views

Respuesta

9

Para DIFF las primeras líneas de K de dos archivos:

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

Similarmente, a DIFF la última k líneas:

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

para líneas diff i a j:

diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2) 
+0

¿Qué significa 'p' en 'i, jp'? –

+0

'p' significa imprimir. – dogbane

+0

y para verificar la igualdad: 'if diff ...; luego echo "igual"; else echo "no igual"; fi' –

0

debajo del comando muestra la primera línea de ambos archivos.

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 

El siguiente comando muestra si la primera línea en ambos archivos es igual.

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> 
1

Mi solución parece bastante básica y novata en comparación con la anterior, pero aquí es todo lo mismo.

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 
1

Mi solución utiliza el programa filterdiff de la colección patchutils programa. El siguiente comando muestra la diferencia entre file1 y file2 desde el número de línea j a k:

diff -U 0 file1 file2 | filterdiff --lines j-k 
Cuestiones relacionadas