Tady to je:
diff <(head -n 1 file1) <(head -n 1 file2)
(to by nevrátilo vůbec nic).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Můžete to začlenit do skriptu, abyste provedli věci, které zmiňujete.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Chcete-li to použít, vytvořte skript spustitelný pomocí chmod +x nameofscript.sh
a poté pro provedení ./nameofscript.sh ~/file1 ~/Docs/file2
To ponechá výchozí počet řádků na 1, pokud chcete více, přidejte na konec příkazu číslo.
(Nebo můžete ve skriptu provést přepínače pomocí -f1 soubor1 -f2 soubor2 -n 1, ale nepamatuji si, že by to bylo z hlavy).
head
vrátí od začátku počet řádků, jak navrhuje -n
. Pokud byste chtěli provést zpětný chod, bylo by to tail -n ${numLines}
(ocas dělá od konce zpět počet řádků).
Upravit 10.5.2016:
To je specifické pro Bash (a kompatibilní shelly). Pokud to potřebujete použít z něčeho jiného:
bash -c 'diff <(...) <(...)'