Ваше регулярное выражение неверно. По умолчанию grep
принимает регулярные выражения в качестве аргумента вместе с флагами командной строки. То, что вы попытались *mystring*
, является выражением глобуса оболочки, которое расширяется до возможного набора имен файлов, содержащих строку mystring
. Таким образом, ваши grep
команды становятся следующими; при условии, что у вас есть имена файлов, содержащие mystring
grep -v mystring1 foomystring2 foomystring3 myfile.txt
, которые могут привести к неожиданным результатам в зависимости от содержимого этих файлов. Правильный способ будет использовать квантификатор жадных совпадений .*
grep -v '.*mystring1.*' myfile.txt