find . -type f -regex '.*\.\(cpp\|h\)' -exec file {} \; | grep "UTF-8\|extended-ASCII"
Команда «find» используется для поиска файлов и каталогов в указанном каталоге и его подкаталогах. В данном случае, команда ищет файлы в текущем каталоге и всех его подкаталогах, которые имеют расширения «.cpp» или «.h» (с помощью опции «-regex»).
Затем, команда «file» используется для определения типа каждого найденного файла. Опция «-exec» передает каждый найденный файл в команду «file» для выполнения. В результате, команда «file» выводит информацию о типе каждого файла.
После этого, команда «grep» используется для фильтрации вывода команды «file» и отображения только строк, содержащих «UTF-8» или «extended-ASCII». Это позволяет найти файлы, которые содержат символы, отличные от ASCII или используют кодировку UTF-8.
Альтернативой может быть использование команды «ls» с опцией «-R» для рекурсивного отображения файлов и опции «-l» для вывода дополнительной информации о каждом файле. Затем можно использовать команду «file» для определения типа каждого файла и команду «grep» для фильтрации вывода.
Аргументы, передаваемые команде, включают текущий каталог («.») и опции «-type f» (для поиска только файлов) и «-regex ‘.*\.\(cpp\|h\)’ (для поиска файлов с расширениями «.cpp» или «.h»).