Я хочу удалить текст из file1.txt.
я помещаю текст в файл tmp и у:
grep -f tmp file.txt
но это дает мне только разницу.
вопрос в том, как удалить разницу от file.txt.
Я хочу удалить текст из file1.txt.
я помещаю текст в файл tmp и у:
grep -f tmp file.txt
но это дает мне только разницу.
вопрос в том, как удалить разницу от file.txt.

Doing grep -f tmp file.txt отобразит все строки, содержащие работу text (предположим tmp просто продолжает работу text). Если вы хотите, чтобы отобразить все строки, которые не содержат текст Слова, которое вы должны использовать -v возможность инвертировать матч:
$ grep -v 'text' file.txt
если вы напечатаете все строки в файле, но просто удалите все вхождения text затем:
$ sed 's/text//g'

если вы хотите удалить строки из своего file.txt, который содержит строку, где text - Это семя, то вы можете сделать что-то вроде:
sed '/text/d' file.txt
или
sed -n '/text/!p' file.txt

что вы хотите сделать, это
grep -Fvf tmp file.txt
С man grep:
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The
empty file contains zero patterns, and
therefore matches nothing. (-f is specified
by POSIX.)
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings,
separated by newlines, any of which is to be
matched. (-F is specified by POSIX.)
-v, --invert-match
Invert the sense of matching, to select non-
matching lines. (-v is specified by POSIX.)
и -f говорит grep читать список шаблонов, он будет искать из файла. -F требуется grep не интерпретирует эти шаблоны как регулярные выражения. Итак, дана строка вида foo.bar на . будет восприниматься как литерал . а не как "любой символ". Наконец-то -v инвертирует матч так grep выведет только те строки, которые не матч любой из моделей в tmp. Например:
$ cat pats
aa
bb
cc
$ cat file.txt
This line has aa
This one contains bb
This one contains none of the patterns
This one contains cc
$ grep -Fvf pats file.txt
This one contains none of the patterns

что я делаю это:
sed '/text_to_delete/d' filename | sponge filename
это внесет изменения в исходный файл.
