.c
、、.R
またはで終わるすべてのファイルを検索したいと思います.Rd
。私は試した
find . -iname "*.[cR]" -print
.c
またはで終わるすべてのファイルを提供します.R
。.Rd
さらにファイルを取得するにはどうすればよいですか? []
1文字しか一致しないことはわかっていますが、.Rd
ファイルを提供するように調整できませんでした(|
またはオプション-regex
などで作業しようとしました)。
どうぞ=)
find -name "*.c" -o -name "*.R" -o -name "*.Rd"
-o
探しているのが 3 つの拡張タイプだけである場合は、正規表現を使用せず、代わりに ("or" のように) 演算子を使用して検索を構成することをお勧めします。
の適切な使用法は次の-regex
とおりです。
find -regex '.*\.\(R\|Rd\|c\)'
正規表現を使用する場合は、これらがファイル名だけでなくパス全体に適用されることに注意する必要があります。
-regex pattern
File name matches regular expression pattern. This is a match
on the whole path, not a search. For example, to match a file
named `./fubar3', you can use the regular expression `.*bar.' or
`.*b.*3', but not `f.*r3'. The regular expressions understood
by find are by default Emacs Regular Expressions, but this can
be changed with the -regextype option.
正規表現はおそらくここでは最良の選択ではないという sampson-chen の答えに同意します。