Member 13016125 Ответов: 1

Linux : как я могу напечатать номер строки и номер столбца, если значения не совпадают для файлов, разделенных вкладками, используя AWK в linux


Сравните файл 1 с файлом 2 и выведите строку№. для записи разницы и столбца нет разницы, присутствующей в файле file2.

В файле 1:

User_ID | First_name |Last_name | Address | Postal_code
User_1 | fistname |Lastname / 35, парк-Лейк, Калифорния | 32068
user2 / Джонни / Депп / 32, парк-Лейк, Калифорния |
user3 | Tom / Cruise | 5322 Otter Lane Middleberge | 32907
user4 / Леонардо / ДиКаприо | полпути пруд, Джорджтаун | 1230
user5 / Сильвестр / Сталлоне / 6762,33 пр. Н, Санкт-Петербург|33710
user6 | Srleo |Stallone / 6762,33 пр. Н, Санкт-Петербург |33700

Файл 2:

User_ID | First_name | Last_name | Address | Postal_code
User_1 | fistname | Lastname / 35, парк-Лейк, Калифорния | 32068
user2 / Джонни / Депп / 32, Нью-стрит, Калифорния / 96206
user30 | Tom / Cruise |5322 Otter Lane Middleberge | 32907
user4 / Leonardo | DiCaprio' |Half-Way Pond, Georgetown / 00000
user5 / Сильвестр / Сталлоне / 6762,33 пр. Н, Санкт-Петербург | 33710
user7 / Nicolas | Cage | / 55010
user6 | Srleo | Stallone / 6762,33 пр. Н, Санкт-Петербург | 33700

ожидаемый результат:

Разница в file2 - это номер строки, за которым следует номер столбца (где значения не совпадают)


Графу 2 строки не 4,5
Строка № 3 колонка № 1
В графу 4 строки не 3,5
Линия № 5 COLUNN № 5
Графу 6 строки нет 1,2,3,4,5

ЗАПИСКА:
Размер файла для сравнения находится в ГБ, а файл разделен вкладками и имеет более 400 столбцов, разделенных вкладками.

Что я уже пробовал:

awk 'NR==FNR{Arr[$0]++; next}!($0 в Arr){print FNR} ' file1 file2

Однако он дает мне номера строк, а не номера столбцов

1 Ответов

Рейтинг:
2

Richard MacCutchan

Используйте FS для изменения разделителя полей, а NF - для количества полей в строке. Видеть awk(1): сканирование/обработка шаблонов-man-страница Linux[^]. Возможно, вам придется создать немного более длинный сценарий, чтобы перебирать строки и поля.


Member 13016125

Спасибо @ Richard M.!!!

Не могли бы вы поделиться скриптом , так как я не очень хорошо разбираюсь в AWK и скриптах.

Richard MacCutchan

Извините, но прошло уже довольно много лет с тех пор, как я регулярно писал awk-скрипты. Я уверен, что вы можете сделать это быстрее; на справочных страницах есть вся необходимая вам информация.