1

bash シェルのすべての出力に対して sed 操作を実行したいと考えています。基本的に、sedコマンドを.bashrcに入れて、特定のキーワードを「リッスン」して何かをしたいのです。

たとえば、.bashrcに次のようなものを入れようとしています:

sed ''/critical/s//$(printf "CRITICAL")/g''

「クリティカル」という単語が表示されるたびに、「クリティカル」に変更されるようにします。これは、ファイルを cat したり、vi を使用したり、別のシステムに telnet で接続したりする場合に発生する可能性があります。これを機能させるにはどうすればよいですか?

4

2 に答える 2

1

多くのコマンドは端末に直接アクセスする必要があり、(バッファリングのために) 端末に直接接続されていない場合は動作が異なるため、シェルからこれを実行してもまったくうまくいきません。さらに、(コマンドなしで) ファイルへのリダイレクトを強制することはできexecますが、パイプをリダイレクトすることはできません。

これを行う正しい方法は、おそらく のexecメカニズムのようなものを使用することscreenです。

于 2012-04-20T01:30:06.250 に答える
0

expectinteract「モード」中にこれを行うことができます。詳細は本に。

于 2012-04-20T03:23:12.740 に答える