È possibile verificare se la prima riga di due file è uguale utilizzando diff
(o un altro comando di bash facile)?controllo dell'uguaglianza di una parte di due file
[Generalmente controllo parità di primi/ultimi k
linee, o anche linee i a j]
È possibile verificare se la prima riga di due file è uguale utilizzando diff
(o un altro comando di bash facile)?controllo dell'uguaglianza di una parte di due file
[Generalmente controllo parità di primi/ultimi k
linee, o anche linee i a j]
Per diff le prime righe k di due file:
$ diff <(head -k file1) <(head -k file2)
Analogamente, al DIFF l'ultima k linee:
$ diff <(tail -k file1) <(tail -k file2)
per le linee diff i a j:
diff <(sed -n 'i,jp' file1) <(sed -n 'i,jp' file2)
sotto comando visualizza la prima riga di entrambi i file.
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
Sotto il comando visualizza sì se la prima riga in entrambi i file è uguale.
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>
La mia soluzione sembra piuttosto semplice e principiante rispetto ai dogbane sopra, ma qui è tutto uguale!
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
mia soluzione usa il programma filterdiff della collezione patchutils programma. Il seguente comando mostra la differenza tra file1 e file2 dal numero di riga da j a k:
diff -U 0 file1 file2 | filterdiff --lines j-k
Cosa significa "p" in "i, jp"? –
'p' significa stampare. – dogbane
e per controllare l'uguaglianza: 'se diff ...; quindi echo "uguale"; altrimenti echo "non uguale"; fi' –