2016-03-20 11 views
0

對於這個問題,我提前表示歉意,但是我現在真的被困住了,而且我只是祈禱有人能幫助我。如何讓cygpath從文件中獲取輸入

我有一系列的c文件,我需要檢查一個約100個子目錄,每個文件名稱爲balance.d,balanced.c或balancer.c。我已經使用find . -name "balance*"獲得了他們的列表,我可以使用sed -n [NUM]p來選擇其中的一個。這是一個使用Cygwin的Windows環境,這些目錄全部通過Dropbox與其他人共享。路徑通常涉及空間,我遇到了麻煩。

我知道,cygpath-SW會給我沒有空格的路徑。我的最終目標是能夠抓住每一個文件,一次一個與gcc path/to/file.c -o ./a.exe

現在,我已經得到了

cygpath -sw $(回聲找到-name「平衡*」 |。sed的 - n 2p | awk'{gsub(/ /,「\」)} 8')

...但是cygpath不會讓我過去的空間。它給了我一個錯誤在你的命令替換或結果

awk: cmd. line:1: warning: escape sequence `\ ' treated as plain ` '

回答

1

把雙引號從中將發生work splitting

此外,您正在使用AWK零件做什麼是不需要的。

您所呼叫的echo命令使用以下參數:

[find] [.] [-name] [balance*] 

你想它來調用find命令是什麼:

cygpath -sw "$(find . -name "balance*" | sed -n 2p)" 
+0

然後它給我'cygpath:不能轉換爲空聲明中的雙引號會引起麻煩嗎? –

+0

我不使用cygwin,但我認爲這是因爲您正在比find命令的行更高的行號('sed -n Xp')。 – andlrc

+0

嘗試運行'cygpath -sw'''確認 – andlrc