Как выполнить дедупликацию выражений -exec в команде find?

$ sed "\#$nt#d" text1 
/u01/app/fa01/
/u01/app/us1fa01_ps6/

sedпозволяет вам использовать произвольный разделитель шаблона, если вы заключаете его в кавычки \.

Это приведет к ошибке , если $ntсодержит какие-либо #символы. В этом случае используйте другой разделитель.

Обратите внимание, что при этом будет удалена строка, содержащая шаблон в любом месте строки.

Чтобы заставить шаблон совпадать по всей строке, используйте

$ sed "\#^$nt\$#d" text1

Здесь нам нужно заключить в кавычки конец -строки -привязки $из оболочки с помощью \$.

0
04.10.2019, 19:39
1 ответ

-orимеет более низкий приоритет, чем -and(, который является соединителем по умолчанию ), поэтому вам необходимо явно увеличить «приоритет» вашей дизъюнкции :

.
find. -path "./dist" -prune -or \( -iname "*.js" -or -iname "*.jsx" \) -exec grep "foo" {} +
3
28.01.2020, 02:22

Теги

Похожие вопросы