出力操作用のPerlスクリプト(コマンドラインから生成)

出力操作用のPerlスクリプト(コマンドラインから生成)

現状 - 次の行を実行します。

Xxxコマンド| mail -s 'テスト'[Eメール保護]

これにより、マイメールに次のような結果が表示されます。

名前ファイル(n)スペースコンピューティングAdam
12345 12345スペース/ファイル(n)
Becky 45689 8987
Maryanne 5598 7895

計算をしなければなりません。追加の列が必要です
とても汚れています。だから私はPerlスクリプトの列に基づいてソートしたいと思います。また、他の列の値に基づいて計算を実行するには、追加の列を追加します。

私の究極の目標は、LinuxでPerlスクリプトを実行することです。これにより、コマンドから出力を「受け取る」形式をうまく指定できます。 (データは毎回異なるため、データをPerlにコピーして貼り付けて1つずつフォーマットするなど、手動でデータ出力を取り込んだ後、毎回編集する代わりに一度だけやりたいと思います)

すべてが順調に進んでいる場合は、LinuxでPerlスクリプトを実行するときです。 (formatコマンドの出力)、素晴らしい形式の出力を含む電子メールが届きます。
(**申し訳ありませんが、列ヘッダーに合わせてスタイルを並べ替える方法がわかりません。)

名前ファイル(n)スペースコンピューティングAdam
12345 12345スペース/ファイル(n)
Becky 45689 8987
Maryanne 5598 7895

だから私の主な質問は:出力を操作するためのPerlスクリプトをどのように書くことができますか?まず、出力をLinuxのテキストファイルに入れる必要がありますか?

これは、メールで送信する前に出力形式を指定したり、出力に列を追加したりできるPerlスクリプトを作成する方法がわからないためです。

どんなアドバイスも本当にありがとうございます。ありがとうございます。

答え1

このawkコマンドを試すことはできますか?

$ xxxcommand | awk 'NR==1{printf("%-10s%-10s%-10s%-10s\n",$1,$2,$3,"calculation")}NR>1{printf("%-10s%-10s%-10s%-10s\n",$1,$2,$3,$2/$3)}' | mail_command
Name      Files(n)  Space     calculation
Adam      12345     12345     1
Becky     45689     8987      5.0839
Maryanne  5598      7895      0.709056

答え2

Xxxcommandとコマンドの間にmail -s...以下を実行します。

Xxxcommand |
sed -e '
   1i\
.TS\
tab( );\
c c c c\
l n n n.
   $a\
.TE
' | tbl - |  nroff -Tascii -ms | grep \. |
mail -s 'test on' [email protected]

注:中央揃え列、左揃え列、および数値ソート列をc表します。必要な列数に合わせて数値を変更します。ln

関連情報