Удалить строки, соответствующие строке до запятой

Я совершенно новичок в написании сценариев bash, и поэтому любая помощь будет высоко оценена. Ниже я хочу достичь.

У меня есть два текстовых файла. Я хочу удалить все строки в первом файле, где он соответствует любой из моей строки во втором файле перед запятой.

например

Файл 1:

this_is_a_test.txt,11dsdsdsdsd this_is_a_test24.txt,545467ddd this_is_a_test22,121244442 

Файл 2:

 this_is_a_test.txt this_is_a_test24.txt this_is_a_test22 

Желаемый результат: пустой

  • Заменить числа в первом разделе файла в результате расчета
  • Выполните одну из многих подстановок во многих файлах в двух определенных местах
  • Удаление пробелов в файле по определенным критериям
  • Сделать вхождения строки жирным шрифтом
  • Как удалить ненужную строку строки в строке?
  • Как выбрать строки в зависимости от того, сколько раз подряд число присутствует в столбце?
  • как удалить многострочную строку / блок текстового шаблона из файла?
  • Чтение данных в двух файлах, содержащих столбцы и отображаемые данные, если они соответствуют
  • 2 Solutions collect form web for “Удалить строки, соответствующие строке до запятой”

    Вы можете использовать:

     grep -vFf file2 file1 

    Помните, что он по-прежнему удаляет строки, хотя они совпадают после запятой.

    Этот простой трюк может сделать это.

     IFS=' ' # If whitespaces exist in file 2 cat file2.txt | while read i; do sed -i '/^'"$i"',/d' file1.txt done 
    Linux и Unix - лучшая ОС в мире.