0
我有以下腳本清潔egrep
參數從當前文件夾中的所有文件的.csv(用於清潔電子郵件列表):擊抑制腳本
#!/bin/bash
for file in $(find . -name "*.csv"); do
echo "====================================================" >> db_purge_log.txt
echo "$file" >> db_purge_log.txt
echo "----------------------------------------------------" >> db_purge_log.txt
echo "Contacts BEFORE purge:" >> db_purge_log.txt
wc -l $file | cut -d " " -f1 >> db_purge_log.txt
echo " " >> db_purge_log.txt
cat $file | egrep -v "marketing" | grep -v -E -i '([0-z])\1{2,}' | uniq | sort -u > tmp_file
echo "$file is now clean!"
mv tmp_file $file ;
echo "Contacts AFTER purge:" >> db_purge_log.txt
wc -l $file | cut -d " " -f1 >> db_purge_log.txt
done
我想egrep -v "marketing"
部分在環上運行一個名爲X.csv
的文件,並從中提取所有參數。最終,大約6M聯繫人列表將被另一個6M聯繫人列表所抑制(如果可能,還需要在服務器上執行6M * 6M查詢)。
任何想法如何實現?
所以到位'marketing',你想從文件的內容匹配字符串的?使用'egrep -v -f X.csv'。 – Barmar
[不要用'for'遍歷'find'的輸出](http://mywiki.wooledge.org/DontReadLinesWithFor)。 – chepner
嗨,不工作。這個想法是,在x.csv我有3個電子郵件地址(例如[email protected])=>這3個電子郵件地址需要從我上面的文件中的$文件中刪除。更改爲egrep -v -f x.csv不會那樣做。 –