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

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

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 для отображения различий между двумя, тремя или четырьмя версиями того же файла.

  • Awk с несколькими разделителями
  • Сравните два журнала по строкам и покажите различия, и если порядок слов из строки не совпадает
  • Shell Script для удаления двойных кавычек в пределах значения столбца
  • Как разбирать JSON с помощью сценариев оболочки в Linux?
  • Синтаксис регулярного выражения Awk с числом повторений - различная обработка между gawk 3 и gawk 4
  • Группировка данных и назначение алфавитных и числовых значений для новых категорий
  • awk и новые строки во входных данных
  • Удалять все, кроме нескольких строк, через несколько файлов
  • Экстра% в выходе скрипта awk
  • Сделайте вывод bash! = 0, вызванный AWK и прерванный с помощью ^ C
  • Посетители, посетившие / стр. 1, а также / стр. 2
  • Использование AWK для удаления результата линии и вывода
  • Linux и Unix - лучшая ОС в мире.