2012-02-14 12 views
2

sedスクリプトファイルを複数記述する必要があります。私はスクリプト内から拡張正規表現を有効にする方法を見つけることができないようです。これは可能ですか?私のコントロール下にない外部環境でスクリプトを実行する必要があるため、私はオプションフラグを使用することはできません。 (それは./script.sed、その後、最初のchmod a+x)のでシェバングラインをのために使用されるスクリプトを実行するために管理者に伝え、その後さsedスクリプト拡張正規表現

#!/bin/sed -rf 
# script goes here 

そして:

+0

「sed」する必要がありますか?また、http://unix.stackexchange.com/ – Cameron

+0

でより良い回答を得るかもしれません。sedスクリプト内の唯一のプログラマブルスイッチ機能は '-n'スイッチであると信じています。スクリプトは '#n'で始まります。 – potong

答えて

3

あなたは、スクリプトシェバングにフラグを指定してみてくださいと言います正しい通訳を見つける。

/bin/sedを環境の正しいパスに置き換える必要があります。残念ながら、これには/usr/bin/env sed -rを使用することはできません(余分に-rが問題です)。

+0

私はあなたが必要と思う-rf ..多分? – vmpstr

+0

あなたは正しいです、ありがとう! –

1

私はあなたの質問への答えは、これはGNU sedであれば、基本的な正規表現のGNU sedの実装ので、あなたはおそらく、拡張正規表現を本当に必要としない「ノー」、しかし、だと思います実際のPOSIX BREでは不可能なEREの機能を実際にサポートしています。確かに、結果は信じられないほど痛みを伴うバックスラッシュの重さ— EREのs/(a|b+|cd?)/e/gはBREのs/\(a\|b\+\|cd\?\)/e/g —になりますが動作します。