Chcę różnicować tylko pierwszy wiersz dwóch plików, w przeciwieństwie do całego pliku. Jak mam to zrobić? Potrzebuję tylko rozwiązania dla pierwszego wiersza, ale jeśli możesz podać liczbę wierszy, byłaby to znacznie lepsza odpowiedź.
Więc diff nie zwróci żadnych różnic między następującymi dwoma plikami:
a
1
2
i:
a
3
4
linux
command-line
diff
gsingh2011
źródło
źródło
Odpowiedzi:
Proszę bardzo:
(to nie zwróciłoby nic takiego).
Możesz włączyć to do skryptu, aby robić rzeczy, o których wspominasz.
Aby tego użyć, po prostu ustaw skrypt na wykonywalny,
chmod +x nameofscript.sh
a następnie wykonaj,./nameofscript.sh ~/file1 ~/Docs/file2
co pozostawia domyślną liczbę wierszy na 1, jeśli chcesz więcej, dodaj liczbę na końcu tego polecenia.(Lub możesz zrobić przełączniki w swoim skrypcie z opcją -f1 plik1 -f2 plik2 -n 1, ale nie przypominam sobie z góry instrukcji przypadku).
head
zwraca od początku liczbę wierszy zgodnie z sugestią-n
. Gdybyś chciał zrobić odwrotnie, byłoby totail -n ${numLines}
(ogon robi od końca wstecz liczbę linii).Edytuj 5/10/16:
Jest to specyficzne dla Bash (i kompatybilnych powłok). Jeśli musisz użyć tego z czegoś innego:
źródło
diff -r dir1 dir2
dla katalogów, aby to ograniczyć, prawdopodobnie będziesz chciał powiązać to z czymś innym. Jeśli masz jakieś szczegóły, otwórz nowe pytanie i podaj link tutaj.bash -c "diff <(...) <(...)"
diff -U (n linii) plik1 plik2
źródło
-U
argument? :)