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