需要逐行读取文本文件,然后用于搜索 CSV 文件

0 bash loops while-loop cat do-while

这里完全是新手..抱歉。

我有一个.txt包含 IP 的文件(逐行):

195.678.333.23
54.221.67.1
32.221.67.2
32.221.67.3
56.221.67.4
32.221.67.5
243.221.67.6
23.221.67.7
34.221.67.8
34.221.67.9
Run Code Online (Sandbox Code Playgroud)

(我需要循环大约200个IP)

我需要读取每一行,然后搜索多个 csv 文件以查找这些 IP,看看它们是否存在。

CSV 是这样的:

3am452525-1;2021-08-25T07:49:03.188353+00:00;195.678.333.23;234.45.78.232;\"pass rscore=16\";bl@hotmail.com resolve=ok reverse=bl@hotmail.com routes= notroutes=alfgdfgd,pr_sdt_Spsdgsgdhidfhgd;sxdgdsgs.hotmail.com;ECDHE-RSA-AES256-GCM-SHA384;NOT;sdgsgm@dunog.df;ENV_RCPT:dgsgsgsg@{hotmial.com,ENV_RCPT_VERIFY:1;ATTACH_NAME:sdgdsgsgsof.pdf,ATTACH_MIME:application/pdf,ATTACH_TYPE:pdf,ATTACH_OEXT:pdf,ATTACH_CORRUPT:0,ATTACH_PROTECT:0,ATTACH_SIZE:20099;;;;;;sdgsg_fhdh_dfhdh;asrsar_asrar;0;0;0;0;0;0;0;df;8.12.0-2107140000;main-2108250046;;;;sdgsg;;;;none;none;rule=sdgsgs action=ssdgsg-sgddsgr Subject default="sdgs $reyey";rule=odfhddh action=add-header dfhdhdReason="$SpamReason";;;;;;SEND_QID:4363636363,SEND_PROFILE:mail,SEND_RCPTS:dhdfhh;1;1;default_uioyuouyo_RcptInOrg;30677;uMwaF_x-00m7xOj-rho8njCPLr_QKYh3;<B8967386-0450-4709-A382-66D68CE4F3A6@rtce-efax1>;"zdgddadyhadyhad";0.283;1;0.856;Fax-Tdhfdm@urydyd;sdhdfhdhdhfd
Run Code Online (Sandbox Code Playgroud)

IP 存在于$3CSV 文件的字段中,但如果我找到 IP,那么我希望将整行作为输出。

有人可以帮忙吗?

我有厌倦的事情,比如:

cat /tmp/IPs_filename.txt | while read line; do grep ${line} csvlog.436334.csv; done

但没有帮助。

谢谢

Pau*_*ges 5

awk对我来说似乎最简单。

awk -F';' 'NR==FNR{lst[$0]; next} $3 in lst{print}' IPs.txt csv
Run Code Online (Sandbox Code Playgroud)