У меня есть два файла f1.txt и f2.txt. Я хочу, чтобы удалить строки в файле 1 (f1.txt), если в первом столбце есть соответствующая запись в File2 (f2.txt). f2 имеет только 1 столбец на строку, так как каждая строка f.txt будет иметь два или более столбца. Вот пример:Удаление записей из файла путем сопоставления столбца с столбцом из другого файла
кошка f1.txt
1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 1000
2, 100, 200, 300, 400
3, 100, 2000, 3000
4, 400, 500
5, 500, 600, 700, 800, 900, 1000
кошка f2. TXT
2
4
Вот желаемый результат:
1, 10, 20, 30, 40
3, 100, 2000, 3000, 400
5, 500, 600, 700, 800
прочитайте столбец f2.txt в наборе, затем для каждой строки в файле f1.txt отделите первый столбец и посмотрите, есть ли его в наборе. мы не пишем ваш код, просто предложите, как его улучшить. – tdelaney
Куда шли 6-е и последующие поля из строк 1 и 5? Откуда взялись «400» в конце строки 3? Положите немного усилий, чтобы задать вопрос. –
Попробуйте следующее: 'awk 'FNR == NR {a [$ 1]; next} {p = 1; c = + $ 1; для (i в a), если (c == i) p = 0} p' f2. txt f1.txt' – Jotne