我有一個shellcript,我從一個NSTask運行,我動態構建。除了一件事以外,一切正常:外殼:發現應該忽略空白
如果文件名包含一個空格,它將被find-command忽略。我像這樣使用它:'find -iname * .xxx'。
如果文件名看起來像'aaa bbb.xxx',比找不到。
任何幫助表示讚賞。
問候, 馬庫斯
我有一個shellcript,我從一個NSTask運行,我動態構建。除了一件事以外,一切正常:外殼:發現應該忽略空白
如果文件名包含一個空格,它將被find-command忽略。我像這樣使用它:'find -iname * .xxx'。
如果文件名看起來像'aaa bbb.xxx',比找不到。
任何幫助表示讚賞。
問候, 馬庫斯
find
不關心,如果你的文件名有空格的。這不是你的問題。
如果您實際上是按照您的問題(find -iname *.xxx
)鍵入的,則問題是您需要引用文件名稱模式以防止其擴展:find -iname '*.xxx'
。注意模式周圍的引號;他們至關重要。
否則,問題很可能在於您如何處理您回來的文件名。例如,這是不行的:
for f in `find -iname '*.xxx'`; do
echo "file: $f"
done
,你會看到,反引號操作符實際分割上的空間(或$IFS
,實際上)和你回來兩個「文件」:「AAA」和「BBB .XXX」。
這裏''print0'選項'find'可能很有用。請注意,在'find'的輸出過程中,它需要額外的工作。 –
@凱特湯普森:是的,經常有。如果「任何進程」是shell腳本的其餘部分,那麼http://stackoverflow.com/questions/1116992/capturing-output-of-find-print0-into-a-bash-array – derobert
逃脫這樣的模式:
find -iname '*.xxx' -print
請考慮+1,如果它幫助。謝謝
是的,不,那不是。 –
我已經盡力回答你的問題,但如果我的回答沒有幫助,你將不得不張貼解釋問題的代碼。 – derobert