這是一個非常簡單的問題。
如何在Swift中轉義此代碼?
find . -name "*.flv" -exec sh -c 'avconv -i "{}" -c copy "$(echo "{}" | sed s/\.[^.]*$/.mp4/g)"' \;
如何在Swift中隱藏此代碼
我試圖用\
來逃避這個,但是失敗了。
這是一個非常簡單的問題。
如何在Swift中轉義此代碼?
find . -name "*.flv" -exec sh -c 'avconv -i "{}" -c copy "$(echo "{}" | sed s/\.[^.]*$/.mp4/g)"' \;
如何在Swift中隱藏此代碼
我試圖用\
來逃避這個,但是失敗了。
您需要通過在它們前面放置一個\
逃脫每"
。他們提早結束你的字符串。
對不起,我自己解決了。
這是解決方案:
let command:NSString = "find . -name \"*.flv\" -exec sh -c \'avconv -i \"{}\" -c copy \"$(echo \"{}\" | sed s/\\.[^.]*$/.mp4/g)\"' \\;"
謝謝你的幫助。
你應該不需要在'sh -c'後面的單引號轉義 – JeremyP
沒錯。我沒有注意到它。謝謝。 – usingsystem8
我試過了,但失敗了:https://dl.dropboxusercontent.com/u/97497395/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC% E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202016-02-29%2017.22.47.png – usingsystem8
幾乎就在那裏!在分號之前不需要最後一個反斜槓 - 這就是你的錯誤所在。 – sschale
我想逃避最後一個反斜槓。 – usingsystem8