私はプレーンテキストまたはHTMLを出力する辞書プログラムを持っており、出力を正規化するsdcv
Bashスクリプトを書いてプレーンテキストをsdcv
書くときに単にstdoutを印刷するか、lynx
HTMLを出力するときにフォーマットされたHTMLを印刷するために使用します。sdcv
そのために、sdcv MYWORD | myscript.sh
分析結果をパイプラインに渡すことができるBashスクリプトを作成しようとしていますsdcv
。問題は、sdcv
2つの出力があり、最初の出力に基づいて2番目の出力をフォーマットする必要があることです。最初の出力後にsdcv
ユーザー入力が必要で、2番目の出力が印刷されます。
私は試してみましたが、FIRST_OUTPUT=$(tee /dev/tty)
問題はこれがsdcv
要求の最初の出力sdcv
とsdcv
私の入力の2番目の出力をマージし、入力が入力されるまで何もアクセスできないことです。
どうやって進めますか?
ベストアンサー1
<html...
たぶん、コマンドで始まり終わる一連の行をコマンド</html...
にパイプすることもできますlynx
(またはより良い方法もありますelinks
)w3m
。
良い:
#! /usr/bin/perl
while (<<>>) {
if (!$inhtml && m{<html}i) {
$inhtml = 1;
open HTML, "|-", qw(elinks -dump);
}
print {$inhtml ? HTML : STDOUT} $_;
if ($inhtml && m{</html}i) {
close HTML;
$inhtml = 0;
}
}
(そしてsdcv MYWORD | that-script
)