2017-01-17 15 views
0

sedを使用して、フォルダからすべてのshabangを(アンドロイドのプログラムを実行するために)再帰的に置き換えようとしています。sedと再帰的にshabangを置き換えます。

  • 代入式の

    不正なオプション

  • :私は「ノーマル言葉」で試みたが、私が試したshabang..Everythingにしようとしている時に頭痛になったときに コマンドは良い作品、私はエラーを得ました

    無比の「/」

  • イベントが

、私はこれに新たなんだし、それはおそらくbegginer間違いですので、時間を見つけていませんEREは(TSSTは私のフォルダです)コードです:

grep -rl "env python" tsst |xargs sed -i "s/\#!/usr/bin/env python/\#!/system/python2.7.9//g" 

私も変数を試してみました:(。コードの最初の部分が良い..です問題があるところ私はちょうどコピー)

sed -i "s/$old/$new/g" 

sed -i 's/"$old"/"$new"/g' 

sed -i "s/'\#!\/usr\/bin\/env python'/'\#!\/system\/python2.7.9\/'/g" 

何私は間違っていましたか?

+0

「xargs」の代わりに「find」を使用しましたか?2)このファイルを1つのファイルに置き換えましたか? – Beta

答えて

1

この正規表現を試してください。正規表現の区切り文字と一致させる実際の文字として、/を混在させることはできません。すべての3つの場所で/の代わりに使用する限り、|のような任意の文字を正規表現デリミタとして使用できます。

$ echo '#!/usr/bin/env python' | sed 's|#!/usr/bin/env python|#!/system/python2.7.9|g' 
#!/system/python2.7.9 
+0

ありがとうございました!それはうまく働いています。私はそれが愚かなエラーであることを知っていた..しかし、私はこれを考えなかった、今なぜ私は知っていると理解していない.. – user7427983

関連する問題