親愛なるStack Exchangeコミュニティの皆さん、
私は別の解決策を見ましたが、正規表現を使用するのが難しいので、これを私の状況に合わせて調整する必要があります。
置き換える必要があるlibオブジェクトのメンバー属性と名前を含むソフトウェア生成ファイルがあります。属性の名前を見つけてデフォルトのファイル名に置き換えるには、sedを使用する必要があります。
以下を含むbobby.jsという名前の.jsファイルで始まります。
// stage content:
(lib.Scenario2IntroFigure0 = function(mode,startPosition,loop) {
stuff
}
同じbobby.jsファイルで終わりますが、今は次のようになります。
// stage content:
(lib.bobby = function(mode,startPosition,loop) {
stuff
}
注:シーン2の紹介図0はいその他残念ながら、すべてのファイルについて。
私がしなければならないことを説明する類似コード:
A. 次のパターン間の項目を見つけて、前の名前を区切ります。
// stage content:
(lib.
B. このエンディングパターンは次のとおりです。
= function(mode,startPosition,loop) {
C. 次のコマンドを使用して、ファイルのデフォルト名自体を取得します。
FILENAME=$(basename $1 '.js')
D. 古い名前をファイルのデフォルト名に変更し、次のようにファイルを上書きします。
sed -i "s/Scenario2IntroFigure0/$DA_FILE/g" $1
ただし、「Scenario2IntroFigure0」は、sedがこれら2つのモードの間で見つけたものです。
ベストアンサー1
$file
次に置き換えてください$1
:
file="bobby.js"
filename=$(basename "$file" '.js')
sed -i 's/\((lib\.\).*\( = function(mode,startPosition,loop) {\)/\1'"$filename"'\2/' "$file"