Доброй ночи.
Имеется два файла с содержимым
file1
4
5
1
12
file2
5
12
Из file1 надо удалить все строки, совпадающие со строками в file2. Строки могут содержать абсолютно любые символы.
Родил только что-то вроде:
cat file2 | while read a; do sed '/"$a"/d' file1 ; done
но оно, разумеется, не работает, т.к. в строках могут попасться символы, которые не дают сработать регекспу.
И как эту задачу решить красиво?
PS Файлы по размеру небольшие, так что, вполне бы сгодилось решение вида
cat file1 file2 | $(COMMAND)
где $(COMMAND) — какая-нибудь команда, навроде uniq, только не оставляющая ни одной строки, повторяющейся более одного раза.
и результат должен получиться для file1:
4
1