2016-05-26 6 views
0

sedを使用してPHPファイルからコードブロックを削除しようとしました。// istart// iend。タグ間のコードとタグ自体は削除する必要があります。考え方は再帰的に行うことです、私はいくつかのファイルのためにそれを行うことができます。Sed/RegEx:PHPファイルから2つの文字列間のコードブロックを削除する

だから、私はこのRegEx:/\/\/istart([\s\S]*?)\/\/iend/を持っています。

あなたがここで働くことを確認することができます:https://regex101.com/r/sQ2bA0/2

しかし、私は sedコマンド実行すると、何もファイルに起こりません。私はすでに成功していないいくつかの方法でそれを試しました。

  • sed -i 's/istart([\s\S]*?)\/\/iend//g' test.php
  • sed -i '1s/\/\/istart([\s\S]*?)\/\/iend//' test.php

私が間違って何をしているのですか?

ありがとうございます。

答えて

1

あなたはこのsedを使用することができます。

sed '/\/\/istart/,/\/\/iend/{s/\/\/istart.*$//p; s/^.*\/\/iend//p; d;}' file 
+0

素晴らしいですが、期待どおりに動作します。ありがとうございました。 – CarlosMaia

0

CarlosMaiaを!

はこれで試してみてください:

"\/\/istart{1,}(.*\n)+.*\/\/iend" 

しかし、あなたは "// ISTART" と "// IEND"

敬具間の1つのラインを持っている必要があります!

関連する問題