Получите список всех файлов маской в терминале

http://www.charvolant.org/~doug/xkb/html/node5.html#SECTION00052000000000000000 имеет карту клавиатуры, и это - символы

5
08.08.2013, 15:53
2 ответа

Можно использовать -o для "или":

find . -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp'

который совпадает с

find . -path '*/trunk/src/*' \( -name '*.h' -o -name '*.cpp' \)

Если Вы хотите выполнить grep на этих файлах:

find . \( -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp' \) -exec grep PATTERN {} +

или

find . -path '*/trunk/src/*' \( -name '*.h' -o -name '*.cpp' \) -exec grep PATTERN {} +
10
27.01.2020, 20:33

В ударе включите globstar опцию так, чтобы ** соответствия любой уровень подкаталогов. Можно сделать это от Вашего ~/.bashrc. Также включите extglob опции активировать ksh расширили шаблоны.

shopt -s globstar extglob

Затем:

grep PATTERN **/trunk/src/**/*.@(h|cpp)

Остерегайтесь того удара версии, до 4,2 следуют за символьными ссылками на каталоги, когда Вы используете **.

Zsh делает это легче, Вы не должны устанавливать опции и можете просто ввести

grep PATTERN **/trunk/src/**/*.(h|cpp)

Если командная строка является слишком длинной, и Вы находитесь на Linux или другой платформе с GNU grep, можно сделать grep рекурсивно вызовите вместо оболочки, чтобы экономить на длине командной строки.

grep -R --include='*.cpp' --include='*.h' PATTERN **/trunk/src
3
27.01.2020, 20:33

Теги

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