2012-04-05 9 views
0

一部のPHPファイルでは、"?>\s\t\n\EOF"を置き換えたいとします。 私は、検索のために、この問題は、使用して発生したすべてのファイルをこれをテスト:ファイル内の一部の文字とEOFを置き換える方法

ack "\?\>[\s\n\t]+\z" 

私は結果を取るが、私は唯一の?>EOFことによって、これを置き換えたいです。 私は「セッド」と別のコマンドをテスト:

sed 's/?>[\n\t\s]+\z/?>/' 

あなたはいくつかのヒントを持っていますか?

例:

?> 
+0

もっと明確にしようとしていることを説明する必要があります。 PHPのクローズマーカーを含むファイルの最後の行の後に空白、タブ、および改行を後で削除しようとしている可能性がありますが、明確ではありません。入手した入力ファイルの例(最小限の例ではおそらく4行)と出力を表示できますか?ヒントに関しては、 'sed'のほとんどのバージョンはデフォルトでPerl正規表現を認識しません。いくつかはオプションとしてそれらを持っています。 –

+0

何を意味するのですか? \ z? –

+0

\ sは空白、\ zはEOF – Herve

答えて

1

ACKがperlのベース、そして\ zのようなものを認識しないのsedれます。 \ zはEOFではなく文字列の末尾であるため、\ zは各行の末尾に一致します。これをファイルの最後でのみ一致させたい場合は、\ z以外のものを使用する必要があります。

+0

ありがとう、私は私の研究を続ける – Herve

関連する問題