Я не знаю, возможно ли сравнить содержание текстовых файлов среди других файлов во второй папке. Мне нужна программа, чтобы только искать соответствующие строки и если она находит их, покажите обе строки файлов с соответствующей строкой.
Я попробовал разностью, но я не получаю результат, который я ожидаю.
Пример того, что я ищу:
Принятие у меня есть две папки и в каждом, является текстовыми файлами, которые я хочу сравнить.
Folder1/test.txt:
example1 - A exampleA - A example2 - B exampleB - C example3 - C exampleC - D
Folder2/test_different_name.txt:
exampleA - A example3 - B exampleB - C exampleC - D example1 - E
Результатом должны быть соответствующие строки сравненных файлов:
Я добавил этот бит, поскольку форматирование не впишется в комментарий. Если это не желаемый результат, удалите его из вопроса! CharlesGreen
|==========================|
|String |File 1 |File 2 |
|--------------------------|
|example1 |A |E |
|example3 |C |B |
|==========================|
Обратите внимание, что только совпавшие тексты печатаются и когда вся строка не соответствует, различия печатаются на экране.
Здесь можно сделать с awk
как:
awk -F'-' 'NR == FNR { hold[$1]= $2; next } $2 != hold[$1] { print $1, hold[$1], $2 }' file1 file2
example3 C B
example1 A E
мы читаем file1 в awk
связанный массив называют hold
с ключом как первый столбец и значение из второго столбца, где столбцы, разграниченные дефисом, мы указали с awk
-F'-'
опция до N
умбра R
ecords равен с F
ile N
умбра R
ecords - который это всегда верный для первого входного файла только, здесь file1.
затем проверьте column2 file2 против ключа с тем же первым столбцом, который мы сохранили в массиве, если они отличались во втором столбце, то мы распечатаем это.