gpt4 book ai didi

linux - Bash 抑制脚本

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:28 27 4
gpt4 key购买 nike

我有以下脚本清理当前文件夹中所有 .csv 文件的 egrep 参数(用于清理电子邮件列表):

 #!/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 的文件上循环运行,并从那里获取所有参数。最终,大约 600 万联系人的列表将从另一个 600 万联系人列表中删除(如果可能,在服务器上需要 6M*6M 查询)。

知道如何实现吗?

最佳答案

请注意,您的排除列表需要每行一个模式(电子邮件地址),即来自 egrep 手册页:

-f 文件, --file=文件 从文件中获取模式,每行一个。空文件包含零个模式,因此不匹配任何内容。

因此,请按照 Orr 的建议修改您的排除行,但还要确保您的 x.CSV 文件确实每行一个电子邮件地址。此外,这很可能不区分大小写,因此,可能类似于:

cat $file | egrep -vi -f Excludes.txt | \  
grep -v -E -i '([0-z])\1{2,}' | sort | uniq > tmp_file

根据经验,我更喜欢在排序后使用 uniq。

:)
戴尔

关于linux - Bash 抑制脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com