約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