私はプロジェクトに何十ものファイルを持っており、発生したすべてのファイルをsix.b("...")
に変更したいのですが、b"..."
に変更します。何らかの正規表現のbashスクリプトでそれを行うことはできますか?複数のファイルからsix.bを削除する
答えて
それはPythonで完全に可能だが、私が最初に私のプロジェクトツリーのバックアップを作成し、その後になります。
import re
import os
indir = 'files'
for root, dirs, files in os.walk(indir):
for f in files:
fname = os.path.join(root, f)
with open(fname) as f:
txt = f.read()
txt = re.sub(r'six\.(b\("[^"]*"\))', r'\1', txt)
with open(fname, 'w') as f:
f.write(txt)
print(fname)
'six.b(" asdf ")'を 'b(" asdf ")'に変えてかっこをかけるつもりはありませんか?私は、 'six.b(" asdf \ ")") 'のようなエスケープされた引用符で文字列を出力すると間違った出力をすると思います。' ''引用符も三重引用符も扱いませんが、修正された出力を生成する代わりに、それらに触れてください。 – user2357112
コードに修正を適用しました。 – ArekBulski
*の.pyまたは何のファイル名のパターンに比較的単純なbashの溶液(変更*の.fooというのあなたの状況が)スーツ:
#!/bin/bash
export FILES=`find . -type f -name '*.foo' -exec egrep -l 'six\.b\("[^\"]*"\)' {} \; 2>/dev/null`
for file in $FILES
do
cp $file $file.bak
sed 's/six\.b(\(\"[^\"]*[^\\]\"\))/b\1/' $file.bak > $file
echo $file
done
注:
それだけconsidますER /それはそれはそれは、例えば、組み込み
\")
を処理しませんを変更し、各ファイルの「.BAK」コピーを行いますパターン
に一致するファイルを変更します
six.b("asdf\")")
ですが、私が扱っているファイルについて詳しく知ることなく、その問題に対する些細な解決策があることはわかりません。six.b("")
の最後は")
となることが保証されていますか?
- 1. NSDirectoryから複数のファイルを削除
- 2. 複数のファイルから文字列を削除する
- 3. 複数のGithubファイルから一度に行を削除する
- 4. gitから複数のファイルを削除する
- 5. 複数のファイルから行を削除する方法
- 6. .NET複数のファイルをリストボックスから削除する
- 7. 複数のBOMをファイルから削除する
- 8. 複数のファイルからテキストを削除する
- 9. 複数の入力ファイルから特定のファイルを削除する方法は?
- 10. 複数の.txtファイルから最後の6行を削除
- 11. Nattableから複数の行を削除
- 12. html入力ファイルから複数のファイルを削除する方法は?
- 13. PowerShell:csvファイルから複数のエントリを削除
- 14. 複数のファイルにコードを挿入しますか?複数のファイルから削除しますか?
- 15. 複数のテーブルからの削除ASP.NET
- 16. 複数のフォルダからいくつかのファイルを削除する
- 17. データベース内の複数の行から数量を削除する
- 18. 複数の条件から削除
- 19. 複数のテーブルから削除
- 20. 複数のユーザーがAzureから削除
- 21. ファイル内のファイルから別のレコード数を削除する
- 22. 複数のユーザーのスタートアップフォルダから一連のファイルを削除するPowerShellスクリプト
- 23. sedを使ってcsvファイルから複数の行を削除する
- 24. nodejsのCSVファイルから複数の行を削除する方法
- 25. ファイルから重複する行を削除するunixツール
- 26. .appファイルからファイルを削除する
- 27. C++のArrayから重複する整数を削除する
- 28. PythonでCSVファイルから複数の文字を削除するには
- 29. 古い複数のファイルからコミットされたコードを削除する
- 30. Pythonで複数のファイルから文字を削除する方法
「six.b」の出現は変更しないでください。例えば'six.begin'などなど、これをPythonとしてマークしました。Pythonソリューションも公開していますか? –