Я хочу различать только первую строку из двух файлов, в отличие от всего файла. Как бы я это сделал? Мне нужно решение только для первой строки, но если бы вы могли указать количество строк, это было бы гораздо лучшим ответом.
Таким образом, diff не возвращает различий между следующими двумя файлами:
a
1
2
и:
a
3
4
linux
command-line
diff
gsingh2011
источник
источник
Ответы:
Ну вот:
(это ничего бы не вернуло как никогда).
Вы можете включить это в сценарий, чтобы делать вещи, которые вы упоминаете.
Чтобы использовать это, просто сделайте сценарий исполняемым с помощью
chmod +x nameofscript.sh
и затем выполняйте../nameofscript.sh ~/file1 ~/Docs/file2
Это оставляет число строк по умолчанию равным 1, если вы хотите больше, добавьте число в конец этой команды.(Или вы могли бы сделать переключатели в вашем скрипте с -f1 file1 -f2 file2 -n 1, но я не припомню, чтобы в верхней части моей головы было указано выражение case).
head
возвращает с начала количество строк в соответствии с предложением-n
. Если бы вы хотели сделать обратное, это было быtail -n ${numLines}
(хвост делает с конца назад количество строк).Изменить 5/10/16:
Это характерно для Bash (и совместимых оболочек). Если вам нужно использовать это из чего-то другого:
источник
diff -r dir1 dir2
для каталогов, чтобы ограничить его, вы, вероятно, захотите передать это чему-то другому. Если у вас есть конкретика, откройте новый вопрос и дайте ссылку здесь.bash -c "diff <(...) <(...)"
diff -U (n строк) файл1 файл2
источник
-U
аргументе? :)