Другой общий случай, когда можно получить это исключение, включает в себя насмешливые классы во время модульного тестирования. Независимо от используемой насмешливой структуры, вы должны убедиться, что все соответствующие уровни иерархии классов должным образом высмеиваются. В частности, все свойства HttpContext
, на которые ссылается тестируемый код, должны быть изделены.
См. « Исключение NullReferenceException при проверке пользовательского AuthorizationAttribute » для несколько подробного примера.
$ find . -name '*.h' -o -name '*.cpp'
Чтобы найти эту информацию на странице man
, введите man find
и выполните поиск операторов, набрав /OPERATORS
и нажмите enter.
.
не является строго необходимо с GNU find, но необходимо в Unix. Кавычки важны в любом случае, и их исключение вызывает ошибки, если файлы из этих типов отображаются в текущем каталоге.
В некоторых системах (таких как Cygwin) круглые скобки необходимы, чтобы сделать набор расширения включительно:
$ find . \( -name '*.h' -o -name '*.cpp' \)
Вы также можете использовать утилиту -regex
:
find -E . -iregex ".*\.(js|jsx|html|htm)"
Помните, что регулярное выражение просматривает полный абсолютный путь:
объяснение этого регулярного выражения с тестовыми примерами: https://regex101.com/r/oY1vL2/1
-E
(как флаг ДО путь) позволяет расширенное (современные) регулярные выражения.
Это для BSD find
(Mac OSX 10.10.5)
find . -name '*.h' -o -name '*.cc'`
работает для поиска файлов.
find . \( -name '*.h' -o -name '*.cc' \)`
работает для выполнения команд на них
find . \( -name '*.h' -o -name '*.cc' \) -exec egrep "#include" {} \; -print | egrep "^\."
find . -name "*.h" -or -name "*.cpp"
работает для меня.
То, что я использую
find . \( -name "*.h" -o -name "*.cpp" \) -print
Это то, что я использую. Я настоятельно рекомендую аргумент «-regextype posix-extended».
find . -type f -iname "*.log" -o -iname "*.gz"
find . -type f \( -name "*.gz" -o -name "*.log" \)
find . -type f -regex '.*\(\.gz\|\.log\)'
find . -type f -regextype posix-extended -regex '.*.(log|gz)'