2つのコマンドを実行し、ファイルに追加し、コンソールにコマンド出力を表示しますが、コマンドは1つだけです

2つのコマンドを実行し、ファイルに追加し、コンソールにコマンド出力を表示しますが、コマンドは1つだけです

nmapなどのLinuxコマンドを実行し、入力をtxt2htmlコマンドに渡してファイルに追加しようとしますが、nmapコマンドの出力のみを表示します。提供されたコマンドは動作しますが、txt2html出力を出力するので、端末にnmap出力を表示したいと思います。これを行う方法はありますか?

nmap localhost | txt2html -extract -8 | tee -a file_to_append

ベストアンサー1

私はこれがあなたが望むものだと思います。

nmap localhost | tee /dev/stderr | txt2html -extract -8 >> file_to_append

説明する:

  1. nmapを実行します。
  2. nmapの出力は、/dev/stderrファイル(標準エラー)とstdoutの両方に送信されます。
  3. txt2html は前のステップで stdout を読み込み、その出力を file_to_append に追加します。 stderrorはリダイレクトされないため、コンソールに表示する必要があります。

以下は、いくつかのダミーコマンドを含む出力がない例です。

$ echo hi | tee /dev/stderr | sed "s/hi/bye/" > /tmp/test.txt
hi
$ cat /tmp/test.txt
bye

端末出力が保存された内容と異なることを確認できます。

おすすめ記事