ありがとうございます。awkを使ってシェルの2つのcsvファイルを比較してください
私は2つのcsvファイルを用意していますが、それらを比較して、それが違う場合に報告する必要があります。ファイル形式は両方のファイルで同じであり、両方のファイルの最初の列データ(列A)でも同じ内容(ヘッダー情報)を持ちます。
awkコマンドを試しましたが、実装方法が不明な条件があります。
条件:
a。最初の2行を除外する必要があります(比較には必要ないため)。これを行うことでこれを達成することができます:
NFR=NR > 2
b。値のいずれかが異なる場合、ヘッダー情報で報告する必要があり、値とともにそれぞれのサーバー名です。
File1.csv:
Status Check
APP servers
Server name,abc,def,ghi,jkl,mno,
Summary,,,,,,
System Start Time,Nov/12/2016 20:12:24 GMT,Nov/12/2016 20:15:38 GMT,Nov/12/2016 20:15:37 GMT,Nov/12/2016 20:15:57 GMT,Nov/12/2016 20:11:42 GMT,
System Life Time,118day.14hr.15min.19sec,118day.14hr.12min.01sec,118day.14hr.12min.03sec,118day.14hr.11min.44sec,118day.14hr.16min.01sec,
OS Version,SunOS 5.10,SunOS 5.10,SunOS 5.10,SunOS 5.10,SunOS 5.10,
Service Pack Version,Generic_147148-26,Generic_147148-26,Generic_147148-26,Generic_147148-26,Generic_147148-26,
State,Up,Up,Up,Up,Up,
File2.csv:
Status Check
APP servers
Server name,abc,def,ghi,jkl,mno,
Summary,,,,,,
System Start Time,Nov/13/2016 20:12:24 GMT,Nov/13/2016 20:15:38 GMT,Nov/13/2016 20:15:37 GMT,Nov/13/2016 20:15:57 GMT,Nov/13/2016 20:11:42 GMT,
System Life Time,118day.14hr.15min.19sec,118day.14hr.12min.01sec,118day.14hr.12min.03sec,118day.14hr.11min.44sec,118day.14hr.16min.01sec,
OS Version,SunOS 5.10,SunOS 5.10,SunOS 5.11,SunOS 5.12,SunOS 5.10,
Service Pack Version,Generic_147148-26,Generic_147148-26,Generic_147148-26,Generic_147148-26,Generic_147148-26,
State,Down,Up,Down,Up,Down,
結果/出力:
OS Version value is different for server name ghi and jkl : 5.11,5.12
State value is different for server name abc, ghi and mno : Down,Down,Down
は、同様に、比較のため5/6列を除外することは可能ですこれは日付/時刻に関連するため、比較には必要ないからです。
は、キー値(例:列b/c)にのみ、特定の列だけがデータを比較することができます。
ようこそStackOverflow!あなたの質問に対する答えは "はい、可能です"です。この質問を改善するためのヒントについては、http://stackoverflow.com/help/how-to-askをご覧ください。特に、問題を解決するためのコードを含める必要があります。私たちは、短期間のプログラマが無料で働いているわけではありません。 – ghoti
確かにghoti。あなたのポイントを得ました。私は自分のコードをinital postに追加するのを忘れていました。前向きに指摘されている点には、感謝祭が含まれます。ありがとう@karakfa。 – HULK