3

「MY_NAME」などのソースコード全体を見つけようとしており、「YOUR_NAME」などに置き換えたいと考えています。私はすでにファイルとそれらが発生する行番号を知っており、パッチを実行している誰でも同じことができるように、同じパッチを作成したいと考えています。誰でも助けてもらえますか?

4

3 に答える 3

2

あなたはコンソールでそれを行うことができます。検索を使用して宛先ファイルを見つけるだけで、何をどの文に置き換えるかを宣言できます。例:

find -name '*' | xargs perl -pi -e 's/MY_NAME/YOUR_NAME/g'
于 2012-10-24T18:48:41.533 に答える
1

sedコマンドを実行してから、パッチを生成する方が簡単な場合があります。

sed -e '12s/MY_NAME/YOUR_NAME/g;32s/MY_NAME/YOUR_NAME/g' file > file2

これにより、12行目と32行目でMY_NAMEがYOUR_NAMEに置き換えられ、出力がfile2に保存されます。

多くの変更がある場合は、sedスクリプトを生成することもできます。

#!/bin/sed -f

12s/MY_NAME/YOUR_NAME/g
32s/MY_NAME/YOUR_NAME/g

次に、多くのファイルに適用するには、次を使用する必要がありますfind

find -type f '(' -iname "*.c" -or -iname "*.h" ')' -exec "./script.sed" '{}' \;

これがお役に立てば幸いです=)

于 2012-10-24T18:48:02.223 に答える
0

コマンド diff を使用して、パッチ コマンドで配布および適用できるパッチ ファイルを作成します。

man diffプロセスに関する多くの情報を提供します。

于 2012-10-24T18:41:52.737 に答える