Звездочка имеет другое значение в регулярных выражениях. На самом деле, если поместить его в начало выражений, оно будет соответствовать буквально. Вы можете удалить его, так как grep
пытается найти выражение в любом месте строки, но не пытается найти соответствие всей строке. Чтобы добавить привязку «конец строки», добавьте $
. Кроме того, .
соответствует любому символу, используйте \.
для буквального совпадения с точкой:
ls | grep -v 'abc\.yml$'
В некоторых оболочках вы можете использовать расширенное перетаскивание для вывода списка файлов без необходимости перенаправления в grep. Например, в bash:
shopt -s extglob
ls !(*abc.yml)