私は次の問題を抱えています-特定のディレクトリの下にあるすべてのxmlファイルをトラバースし、id
見つけたすべての-sに特定のプレフィックスを付けたいです。これを行うために、次のスクリプトを作成しました。
#!/bin/bash
find . -iregex .+?\.xml -print -exec awk '{print gensub(/(.*?)=\"(@(\+|)id)\/(.+)\"/, "\\1=\"\\2/prefix_\\4\"", "g", $1);}' {} > {} \;
ただし、リダイレクト部分> {}
は機能しません。スクリプトは正常に実行され、stdoutで期待どおりにすべてを出力しますが、出力をawkが読み取ったのと同じファイルにリダイレクトできないようです。これを回避する方法はありますか?ありがとう!