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

Я совершенно новичок в написании сценариев 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 
  • условная замена строк на число
  • Проверьте, имеются ли все строки файла в другом файле
  • Удалите пробелы, кроме строк, начинающихся с определенного шаблона
  • Функция vlookup в unix
  • Упорядочить текстовый файл одним словом в строке
  • Удаление столбцов из файла
  • Как удалить символ новой строки между двумя строками <font> \ n </ font> в unix?
  • Как выбрать строки в зависимости от того, сколько раз подряд число присутствует в столбце?
  • Замена текста в определенной позиции из другого файла
  • Удалить строки в txt-файле, взяв шаблоны из другого файла
  • Расширенный поиск и замена программы
  • Как удалить соответствующие строки из одного текстового файла с помощью другого?
  • Linux и Unix - лучшая ОС в мире.