私は、通常は手作業で行う作業を自動化しようとしています。つまり、複数のユーザーのアクセス許可からデータベース出力を取得し、それらを比較して、共通点を確認します。現在、commとpasteを使用するスクリプトがありますが、必要なすべての出力が得られません。
問題の一部は、一度に2つのファイルのみを処理する通信にあり、傾向を見つけるために少なくとも3つを比較する必要があります。また、3つのうち2つに共通点があるかどうかを判断する必要がありますが、3つ目には共通点がありません(したがって、2つのcommコマンドの出力を比較しても機能しません)。Excelにインポートできるように、これらをコンマで区切った値にする必要があります。各ユーザーには列があり、最後に共通するすべてのリストがあります。commは、3つ以上のファイルを比較できれば(そして3つのうち2つの比較を表示できれば)完全に機能します。
コードに加えて、生のcsvファイルから余分な部分をすべて削除する必要があります。これまでに4人のユーザーを比較した結果です。それは非常に非効率的ですが、それは私が知っていることです。
cat foo1 | sort > foo5
cat foo2 | sort > foo6
cat foo3 | sort > foo7
cat foo4 | sort > foo8
comm foo5 foo6 > foomp
comm foo7 foo8 > foomp2
paste foomp foomp2 > output2
sed 's/[\t]/,/g' output2 > output4.csv
cat output4.csv
現在、これは2人のユーザー、それらの類似点と相違点を出力し、次に別の2人のユーザーに対して同じことを行い、それを一緒に貼り付けます。これは手作業よりもうまく機能しますが、もっと多くのことができると思います。
入力ファイルの例は次のようになります。
User1
Active Directory
Internet
S: Drive
Sales Records
User2
Active Directory
Internet
Pricing Lookup
S: Drive
User3
Active Directory
Internet
Novell
Sales Records
ADとインターネットが共通している場合、3つのうち2つが販売記録へのアクセスとS:ドライブの許可を持ち、それぞれの1つだけがNovellとPricingへのアクセスを持っています。
誰かが私に欠けているものを手に入れることができますか?