2つのファイルに違いがあるかどうかを判断するループです。違いがある場合は、それらの違いをテキストファイルに追加して、特定の同僚に電子メールで送信する必要があります。diff出力をフォーマットして "現在値の前回値"を表示する
私は現在、そのコマンドの出力、そして得られた電子メールは、受信者のための読みやすい形式になっています -y 差分を使用しようとしています。
私は生の違いを取得するために使用しているコマンドはこれです:
diff -y unita3x0101.pre unita3x0101.pre.v1 | grep "|" >> filetoemail.txt
私に次のような出力与える:私が探している何
command=(PV SY 102) - PV SY 102 7:54:38 | command=(PV SY 102) - PV SY 102 7:27:47
command=(PV SY 906) - PV SY 906 2600.000 Inj#1 K-Fact | command=(PV SY 906) - PV SY 906 5200.000 Inj#1 K-Fact
command=(PV SY 907) - PV SY 907 0.8424 Inj#1 Mtr-Fact | command=(PV SY 907) - PV SY 907 0.9600 Inj#1 Mtr-Fact
command=(PV SY 912) - PV SY 912 0.1560 Inj#2 Mtr-Fact | command=(PV SY 912) - PV SY 912 1.3109 Inj#2 Mtr-Fact
を、この次のとおりです。
Current - PV SY 102 7:54:38 Previous - PV SY 102 7:27:47
Current - PV SY 906 2600.000 Inj#1 K-Fact Previous - PV SY 906 5200.000 Inj#1 K-Fact
Current - PV SY 907 0.8424 Inj#1 Mtr-Fact Previous - PV SY 907 0.9600 Inj#1 Mtr-Fact
Current - PV SY 912 0.1560 Inj#2 Mtr-Fact Previous - PV SY 912 1.3109 Inj#2 Mtr-Fact
私が望む出力に最も近いのは、これを使用したものです。
diff -y unita3x0101.pre unita3x0101.pre.v1 | grep "|" | sed s/\command=\(PV/Current\ \/| sed s/\command=\(PV/Previous\ \ /
しかし、それはすべての不要な文字を削除しません:
Current SY 102) - PV SY 102 7:54:38 | Previous SY 102) - PV SY 102 7:27:47
Current SY 906) - PV SY 906 2600.000 Inj#1 K-Fact | Previous SY 906) - PV SY 906 5200.000 Inj#1 K-Fact
Current SY 907) - PV SY 907 0.8424 Inj#1 Mtr-Fact | Previous SY 907) - PV SY 907 0.9600 Inj#1 Mtr-Fact
Current SY 912) - PV SY 912 0.1560 Inj#2 Mtr-Fact | Previous SY 912) - PV SY 912 1.3109 Inj#2 Mtr-Fact
は、私は出力がより「ユーザーフレンドリー」にする/使用を追加することができます別の方法、またはそれ以上のsedコマンドがあります?
Perlやawkは簡単にsedのよりも、このタスクを達成することができます。 – axiac
それは私が必要なものです! awk -F '[)|]'を使って "Current $ 2 Previous $ 4"を印刷すると、私に必要なものが与えられます。本当にありがとう! –