「tr」(翻訳コマンド)を実行して出力をサイレントする方法は?

「tr」(翻訳コマンド)を実行して出力をサイレントする方法は?

以下のようにファイルのテキストを置き換えるtrコマンドを使用しています。sedtr '\n' ' ' < afile.txt | sed '$s/ $/\n/'ここ。大きなファイルで実行すると、コンソールに出力代替テキストがあふれます。

だから私の必要性はコマンドを実行しますが、出力を沈黙させることです。私のGoogle検索ここ電話tr --helpしてもお手伝いできませんのでこちらまでお問い合わせください。

答え1

パイプの出力を破棄したくないでしょう。端末がいっぱいになるのではなく、どこかに保存したいと思うかもしれません。

私はこれがあなたが探しているものだと思います:

$ tr '\n' ' ' < afile.txt | sed '$s/ $/\n/' >anotherfile.txt

これにより、パイプの結果がanotherfile.txt端末ではなくファイルに保存されます。その後、自由にスキャンしてmv anotherfile.txt afile.txt目的の結果に適している場合は、元のファイル()をそのファイルに置き換えることができます。

>パイプの先端は出力リダイレクトsed標準出力ストリームを指定されたファイルにリダイレクトします。 「反対の方法」で動作します。入力リダイレクト <afile.txt以前は、標準入力ストリームにコンテンツを送信するためにパイプで使用されていましたtr

答え2

一般的に言えばできますcommand出力をミュートします。渡す

command 1>/dev/null

stderrに記録された内容は引き続き表示されます。 stderr の出力も無効にするには、次のようにします。

command 1>/dev/null 2>&1

短く:

command &>/dev/null

ファイル記述子のリダイレクトについてもっと知りたい場合は、Redirecting Standard Output and Standard Errorbashのマニュアルページを見てください。

関連情報