CSVファイルから同じ行の重複エントリを削除するには?

CSVファイルから同じ行の重複エントリを削除するには?

約4000行のcsvファイルがあり、各行には2から30のカンマ区切りの名前が含まれています。名前には、役職が含まれます(例:Mr. X AdamsまたはMs. Y Sanders)。いくつかの名前は同じ行に複数回存在し、同じ行から複数​​の名前を削除したいと思います。これは、「input.csv」ファイルと最終結果でなければならない別のファイル「output.csv」にあります。

たとえば、次のようになります。

mr. 1,mr. 2,mr. 3,mr. 1,mr. 4
prof. x,prof. y,prof. x
mr. 1,prof y

これにならなければならない

mr. 1,mr. 2,mr. 3,mr. 4   (mr. 1 was already meantioned so it should be removed)
prof. x,prof. y           (prof. x was already mentioned so it should be removed)
mr. 1,prof y              (even though both were already mentioned in the same file, they were not mentioned within this line so they may remain)

ベストアンサー1

あなたは試すことができます:

#!/bin/bash

cat file | while IFS= read -r line ; do 
echo "$line" | tr , '\n' | sort -u | tr '\n' , | sed 's/,$/\n/' ; 
done 

おすすめ記事