は、私は自分のデスクトップ上のファイルのディレクトリを持っている:-nameは動作しますが、Mac端末で-regexを使用できないのはなぜですか?私のMacは、ヨセミテを実行する上で
29_foo10.bar
29_foo2.bar
29_foo20.bar
29_foo3.bar
私はfoo
後に単一の数字を持つファイルをターゲットにしたいです。私はfind -name
を使用するとき、私は持つファイルの選択ターゲットにすることができます:
USERNAME=darthvader
DIRECTORY="/Users/$USERNAME/desktop/test"
for theProblem in $(find $DIRECTORY -type f -name '29_foo[0-9].bar'); do
cd $DIRECTORY
echo $theProblem
done
を、私は、端末(29_foo2.bar
& 29_foo3.bar
)で2つのファイルを返されていますが、私は-regex
を使用しようとすると、それは何も返しません、コード:
for theProblem in $(find $DIRECTORY -type f -regex '29_foo[0-9].bar'); do
cd $DIRECTORY
echo $theProblem
done
私はいくつかの研究を行なったし、私はに私のコードを修正OS X Find in bash with regex digits \d not producing expected results
が見つかりました:
for theProblem in $(find -E $DIRECTORY -iregex '29_foo[0-9].bar'); do
と私は戻っている:ので、私が試した
そのようなファイルまたはディレクトリ:
for theProblem in $(find -E $DIRECTORY -type f -regex '29_foo[0-9].bar'); do
しかし、私はまだ取得していない:
そのようなファイルはありませんまたはディレクトリ
だから私はさらにいくつかの研究を行なったし、bash: recursively find all files that match a certain patternを発見し、テストした:
for theProblem in $(find $DIRECTORY -regex '29_foo[0-9].bar'); do
と私は戻っている:
そのようなファイルやディレクトリはありません
をさらに私が見つけたウサギの穴の下にHow to use regex in file findを見つけたので、私は試しました:
for theProblem in $(find $DIRECTORY -regextype posix-extended -regex '29_foo[0-9].bar'); do
と端末私に語った:
検索:-regextype:
原発不明またはオペレータヨセミテに私は
-regex
でファイルをターゲットにすることはできませんよ、なぜ?私がman regex
を実行したとき、マニュアルが返されました。私のbashバージョンは3.2.57です。だからはなぜ-regex
が動作しないのですか?
あなたが見つけた解決策のいくつかは[OSX find](https:// developer。)の間に[GNU find](http://linux.die.net/man/1/find)で動作することに注意してください。 apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/find.1.html)は、 '-regextype'のようなオプションのいくつかを見逃しています。 – fedorqui
@fedorquiあなたは、GNUとOSXの間に欠けていることを書き留めている文書を知っていますか? –
えええええええええええええええええええええええええええええええええ: – fedorqui