Как вывести разницу между двумя файлами?

Мой файл состоит из следующего: грубо:

username:username:username:username:username 

Вышеприведенная строка содержит около 600 символов.

Я использую команду awk , чтобы использовать ее в качестве аргумента в запросе API / HTTP, отправленном из командной строки.

Я использую свой скрипт, чтобы получить список учетных записей пользователей, следующих за мной, и каждые 24 часа или около того, сравнивая исходный список на моем жестком диске с недавно выведенным списком имен пользователей (и повторяет, кто больше не следит Мне придется инкапсулировать свою логику в цикл, используя bash .. тестирование каждого имени пользователя.

Мой текущий скрипт:

 user=$(awk -F: '{ print $1 }' FILE) # Grab $User to use as an argument. following=$(exec CURRENT_FOLLOWERS) # Outputs the new file echo "X amount of users are following you on 78B066B87AF16A412556458AC85EFEF66155" SAVE CURRENT FOLLOWERS TO NEW A FILE. if [[ DIFFERENCE IS DETECTED ]] ; then echo -ne "$User NO LONGER FOLLOWING YOU\r" else echo -ne "This user is following you still.\r" fi 

Мой вопрос:
Как вывести разницу между двумя файлами?

6 Solutions collect form web for “Как вывести разницу между двумя файлами?”

Утилита, которую вы ищете, отличается. Загляните в руководство за подробностями.

Для двух файлов, содержащих несортированные списки пользователей, например

 In file1: userD user3 userA user1 userB 

а также

 In file2: user3 userB userX user1 

затем, чтобы получить простой список пользователей в file1 но не в file2 , вы можете сделать

 $ comm -23 <(sort file1) <(sort file2) userA userD 

и аналогично получить пользователей в file2 но не в file1

 $ comm -13 <(sort file1) <(sort file2) userX 

Если файлы списка уже отсортированы, их можно упростить для comm -23 file1 file2 и comm -13 file1 file2 соответственно.

diff [options] from-file to-file

diff сравнивает содержимое двух файлов from-file и to -file. Вы можете указать параметр -i который игнорирует изменения в случае; рассмотрите эквивалентные буквы в верхнем и нижнем регистре.

Для получения дополнительной информации вы можете сослаться на эту ссылку: http://www.computerhope.com/unix/udiff.htm, или вы можете посмотреть страницу руководства.

Лучшей командой для просмотра разницы в содержимом файлов было бы

 vim -d file1 file2 

вы можете попробовать те же окна, что и команда fc в Unix и Linux, т.е. diff <file_new> <file_old> .

Линия с +++ или --- перед ними изменилась, а одна с no +'s не изменилась

Строки с - значком удаляются из нового файла, однако они существовали в старой версии

Строки с знаком + добавляются из нового файла, однако они не существовали в старой версии файла

Обозначение Linux

Linux использует > и <

> означает строку из старого файла < означает строку из нового файла, которая была изменена в старом файле

Пойдите для vimdiff для отображения различий между двумя, тремя или четырьмя версиями того же файла.

  • Сценарий, который учитывает только установленные, TIME_WAIT и Closed Wait подключения с помощью Netstat
  • изменение формата даты в команде awk
  • Создание текстового файла из других текстовых файлов
  • Условный awk через 4 столбца
  • Измените текст в теге, но только тег содержится в определенном блоке XML
  • Вывод различных строк при сравнении двух файлов
  • vlookup работать в awk на linux
  • Самый быстрый инструмент `uniq` в linux
  • Извлечение частей текста с помощью sed, awk
  • Как усечь только заданную длину столбца?
  • Как отфильтровать пару фигурных скобок
  • Interesting Posts

    Массивное повреждение диска на Ubuntu 15.10 с использованием dm-crypt + LUKS для полного шифрования диска?

    Получать текстовый вывод из команд сценария оболочки на экране во время выполнения

    запуск cron на chroot

    Укажите тип поля для изменения в файле

    Является ли использование epub2pdf потенциальной угрозой безопасности? Есть ли альтернатива?

    Как сделать $ @ начать одну итерацию вперед

    О побеге с трубой SSH

    Возможно ли обновлять измененные времена только без копирования файлов при использовании rsync?

    apache mod_headers используют базу 64

    Если я использую одну из функций семейства exec для открытия дочернего процесса, будут ли применяться к родительскому каналу каналы?

    Поиск файлов в алфавитном порядке перед заданной строкой

    Почему некоторые программы немедленно возвращаются в оболочку, а другие – пока выполнение не завершено?

    Как подавить строку заголовка и окна в максимально развернутом окне в Gnome 3.12?

    Как создать cron, который находит / убивает / очищает старые марионетки?

    Как создать резервную копию системы Debian на жестком диске Apple hfsplus?

    Linux и Unix - лучшая ОС в мире.