1

メールの件名が少し長い場合、切り捨てられずにコマンドまたは外部ファイルにパイプすることはできません。なんで?そして、どうやってそれを正しく行うのですか?

例:

mail -H -f mbox

複数のメールを表示します。すべてが正常に見えます。

O 3 user@linux.sit Tue May 31 13:39 22/596 これは非常に長い長い長い件名です

しかし、パイプで何かをしようとするとすぐにパイプが壊れます

mail -H -f mbox | tee
 O  3 user@linux.sit Tue May 31 13:39   22/596   This is a ver

連続して 78 文字しか表示されず、それ以上は表示されません。

やったら同じ

mail -H -f mbox >> into_a_file

mail -H -f mbox | grep -----
mail -f mbox | less

そして、xterm、gnome-terminalなどでは機能しません... COLUMNSまたはTERMWIDTHを設定しても(mailxの外または-Sオプションを使用して...)

何故ですか?

4

1 に答える 1

2

私が見る限り、mailx は出力の提供とリダイレクトの動作が異なります。

マニュアルを読むと、メッセージヘッダーの標準出力が可能であることがわかります

$ mail -H

これは、特定の形式で出力するのと同じです (C の printf など)。

$ mail -H -S headline="%>%a%m %20f  %16d %3l/%-5o %i%S"

出力をパイプするときに、%S フィールドが切り捨てられているようです。件名ヘッダーを保持するには、%S を %150S (フィールド幅 150) などに変更します。

$ mail -H -S headline="%>%a%m %20f  %16d %3l/%-5o %i%150S"
于 2012-06-18T06:49:09.030 に答える