Linux Bash抑制脚本

Linux Bash抑制脚本,linux,bash,scripting,Linux,Bash,Scripting,我有以下脚本清理当前文件夹中所有.csv文件的egrep参数(用于清理电子邮件列表): 我希望egrep-v“marketing”部分在名为X.csv的文件中循环运行,并从中获取所有参数。最终,一个约600万联系人的列表将从另一个600万联系人的列表中删除(如果可能的话,需要在服务器上进行600万*600万的查询) 您知道如何做到这一点吗?请注意,您的排除列表每行需要一个模式(电子邮件地址),即从egrep手册页: -f FILE,--FILE=FILE 从文件中获取模式,每行一个。空文件包含零

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

我希望
egrep-v“marketing”
部分在名为
X.csv
的文件中循环运行,并从中获取所有参数。最终,一个约600万联系人的列表将从另一个600万联系人的列表中删除(如果可能的话,需要在服务器上进行600万*600万的查询)


您知道如何做到这一点吗?

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

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

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

cat $file | egrep -vi -f Excludes.txt | \  
    grep -v -E -i '([0-z])\1{2,}' | sort | uniq  > tmp_file  
根据经验,我更喜欢在排序后使用uniq

:)

Dale

那么,您想从文件内容中获取匹配字符串,而不是
营销
?使用
egrep-v-f X.csv
。嗨,不工作。这个想法是,在x.csv中,我有3个电子邮件地址(例如orr@wingate.com)=>这3个电子邮件地址需要从上面我的文件中的$file中删除。更改为egrep-v-fx.csv不会这样做。请显示输入和预期输出的示例。cat$file | egrep-v-f bounces.csv | grep-v-E-i'([0-z])\1{2,}'| uniq | sort-u>tmp|u文件
cat $file | egrep -vi -f Excludes.txt | \  
    grep -v -E -i '([0-z])\1{2,}' | sort | uniq  > tmp_file