2

誰かが正規表現パターン、文字列とbashの置き換えに長けているなら、あなたは私に大きな恩恵を与えることができます:

ディレクトリにたくさんのソースファイルがあり、さまざまな場所にこの行があります。行の前にはスペースが必要です。

RELEASE_AND_NIL(_theNameOfAVariable);

すべてのオカレンスを変換して、ファイルを次のように上書きしたい:

[_theNameOfAVariableリリース];

..ポインタをお願いしますか?以前、sedでこれを行う方法を誰かが教えてくれたと思いますが、それはずっと前のことでした。

ありがとう

編集

私が最後に使用した実際のコマンドは次のとおりです:(@fardjadに感謝します)

 find . -name '*.m' -print0 | xargs -0 sed -i "" "s/RELEASE_AND_NIL(\(.*\))/[\1 release\]/g"
4

3 に答える 3

1

sed -iインプレース置換を実行するために使用でき、正規表現置換パターンは次のようになります。

s/RELEASE_AND_NIL\((.*?)\)/\[\1 release\]/g

だからあなたはすることができます:

sed -ie "s/RELEASE_AND_NIL(\(.*\))/[\1 release\]/g" /path/to/your/file

ソースファイルがたくさんある場合は、次を使用できfindますxargs

find . -type f -print0 | xargs -0 sed -ie "s/RELEASE_AND_NIL(\(.*\))/[\1 release\]/g"
于 2012-08-23T21:12:33.773 に答える
0
sed -r 'RELEASE_AND_NIL\(([^(]+)\)/[\1 release]/' your_file.txt > target_file.txt
于 2012-08-23T21:12:08.027 に答える
0

_theNameOfAVariableが何かである可能性があることを正しく理解した場合、これは必要なことを実行するはずです。

sed -e 's/ *RELEASE_AND_NIL(\(.*\));/[\1 release];/'
于 2012-08-23T21:12:15.513 に答える