2017-04-11 5 views
-1

xCodeビルド中にスワイプコード内の値を置き換える必要があります。 私のSWIFTコードは次のようである:正規表現はbashでは一致しませんが、オンラインRegexツールで動作します

struct KeyConstants { 
    static let uniqueKeyName = "some key" 
} 

私はビルドフェーズを追加し、新しい値で古い値を置き換えるために、いくつかのスクリプトを書いた:

NEW_VALUE=$"new value" 
find . -type f -name 'MyFile.swift' -exec sed -i '' s/"uniqueKeyName = \"(.*?)\""/"uniqueKeyName = \"${NEW_VALUE}\""/ {} + 

私は問題は正規表現だと思う、それはで動作しますいくつかのオンライン正規表現ツールですが、bashではありません。

sed "s/uniqueKeyName = \"(.*?)\"/uniqueKeyName = \"new value\"/g" file.txt 

ご協力ありがとうございます。

+0

Re:「このスクリプトは機能しません」 - それは何をするのだろうか? –

+0

何もしません。値は置き換えられません。 – Steven

答えて

0

this postから解決策が見つかりました。 "(.*?)"の代わりに"[^"]*"を使用してください。

find ${FILE_PATH} -type f -name '*.swift' -exec sed -i '' "s/uniqueKeyName = \"[^\"]*\"/uniqueKeyName = \"${NEW_VALUE}\"/" {} + 
関連する問題