для цикла для сравнения пар файлов

У меня есть скрипт, который входит в состав около 30 пар маршрутизаторов. Скрипт выполняет команду и сохраняет вывод в файл, затем переходит к следующему маршрутизатору и так далее.

Теперь я хочу запустить «diff» для каждой пары файлов маршрутизатора, а затем «разбить» следующую пару и т. Д., Например, diff rtr_1a rtr_1b затем diff rtr_2a rtr_2b и т. diff rtr_2a rtr_2b ….

Как я могу сказать «diff», чтобы сравнивать только отдельные пары файлов без жесткого кодирования имен вручную в нескольких отчетах diff?

One Solution collect form web for “для цикла для сравнения пар файлов”

Предполагая, что все файлы называются rtr_ia и rtr_ib для i между 1 и 30:

 #!/bin/bash for (( i = 1; i <= 30; ++i )); do diff "rtr_${i}a" "rtr_${i}b" done 

Чтобы сохранить отличия в файлах:

 #!/bin/bash for (( i = 1; i <= 30; ++i )); do diff "rtr_${i}a" "rtr_${i}b" >"rtr_${i}.diff" done 

После комментариев:

 #!/bin/bash for rtra in *rtr*a; do rtrb="${rtra%a}b" diff -- "$rtra" "$rtrb" done 

или

 #!/bin/bash for rtra in *rtr*a; do rtrb="${rtra%a}b" diff -- "$rtra" "$rtrb" >"${rtra}_${rtrb}.diff" done 

… сохранить в файл.

Это соответствует всем prefix-rtrNa файлов prefix-rtrNa а затем для каждого из них создает соответствующее имя файла prefix-rtrNb ( ${rtra%a} удаляет конечный a из значения $rtra ). Затем он разграничивает два файла.

  • Как распределить дистрибутивы?
  • Pipe diff файл в патч?
  • Сравнение независимых строк в двух файлах
  • Запуск разницы между локальными и удаленными файлами
  • Почему две директории отличаются после синхронизации с rsync?
  • Сравните старый файл и новый файл, но игнорируйте строки, которые существуют только в новом файле?
  • проверьте, находятся ли все файлы из папки в другой папке
  • Как заставить команду diff игнорировать некоторые строки второго файла (bash)?
  • Один способ разницы между двумя каталогами
  • diff без включения удаленного контента
  • Сравнение каталогов в Emacs
  • Цветовая разность
  • Linux и Unix - лучшая ОС в мире.