質問スレなかったのでここで質問させてください。
フォルダ以下の全てのファイル内の特定の文字列からn行ずれた文字列を置換したいんですが、どういうコマンドを打ったら良いでしょうか?

具体的にやりたいこととしては、Unityのprefabファイルやsceneファイル(テキストファイル)に張り付いている特定のコンポーネントの名前を一括で置換したいです。
ファイルの構造は↓こんな感じになっていて、guidがc5b2e3eb25e32904fa18c5ae09b782d9の行の1行下のm_nameを書き換えたいんですが、コマンドがうまく動きません
https://github.com/Unity-Technologies/FPSSample/blob/master/Assets/Prefabs/Cameras/ServerCameraSpot.prefab#L51

作りかけのコマンド
git grep -n c5b2e3eb25e32904fa18c5ae09b782d9-- '*.prefab' | cut -f 1,2 -d ":" | awk -F ":" '{print $1 ":"($2 + 1)}' | sed -n $2p

適当にsedでm_nameを置換指定してしまうと、guidがc5b2e3eb25e32904fa18c5ae09b782d9以外のものまで置換してしまうので、
最初のgit grepでファイル名と行番号他を取得し、次のcutでファイル名と行番号だけにして、awkで行番号+1して、ファイル名と+1した行番号を元に、
ファイル名と行番号を指定したsed -eをしたいんですがprintしたものがうまく最後のsedに渡ってきません