标签: cat

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

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

我有一个.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

但没有帮助。

谢谢

bash loops while-loop cat do-while

0
推荐指数
1
解决办法
366
查看次数

Linux bash 使用所有可用行将两个文本文件编织成一个备用行

我希望将两个文本文件合并为一个,其中一个文本文件中的所有行都变成奇数行号,另一个文件变成偶数行号,例如将文件编织在一起

输入1.txt

1, 267, Note_on_c, 0, 67, 100
1, 758, Note_on_c, 0, 58, 100
1, 1248, Note_on_c, 0, 79, 100
1, 1739, Note_on_c, 0, 52, 100
Run Code Online (Sandbox Code Playgroud)

输入2.txt

1, 368, Note_off_c, 0, 67, 127
1, 936, Note_off_c, 0, 58, 127
1, 1415, Note_off_c, 0, 79, 127
1, 1917, Note_off_c, 0, 52, 127
Run Code Online (Sandbox Code Playgroud)

并需要组合这些文本文件来创建以下输出

1, 267, Note_on_c, 0, 67, 100
1, 368, Note_off_c, 0, 67, 127
1, 758, Note_on_c, 0, 58, 100
1, 936, Note_off_c, 0, 58, 127
1, 1248, Note_on_c, 0, …
Run Code Online (Sandbox Code Playgroud)

bash shell merge sed cat

0
推荐指数
2
解决办法
284
查看次数

使用CAT或AWK读取文件以获得更好的执行时间

我有两个相同的脚本.在一个我使用的猫和其他它都是AWK.

这是第一个:

#!/bin/bash


        lines=$(cat /etc/passwd | wc -l)

        for ((i=1 ; i <=$lines ; i++ ))
        do
        user=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $1}')
        uid=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $3}')
        gid=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $4}')
        shell=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $7}')
        echo -e "User is : $user \t Uid is : $uid \t Gid is : $gid \t Shell is : $shell"
        done
Run Code Online (Sandbox Code Playgroud)

这是第二个: …

bash time benchmarking awk cat

-2
推荐指数
1
解决办法
109
查看次数

如何将文件(从 aws s3 存储桶复制)附加到 Linux 中的另一个文件,

我想从 S3 存储桶复制文件,我需要将该文件附加到另一个文件。我想在单个命令中完成。aws s3 cp s3://sample/test.txt /home/user/test.txt 此命令正在覆盖现有文件。如果我使用“cat >>”,则会出错。TIA。

linux amazon-s3 amazon-ec2 cat amazon-web-services

-2
推荐指数
1
解决办法
944
查看次数

在bash中合并两个json(无jq)

我有两个json:

env.json

{  
   "environment":"INT"
}
Run Code Online (Sandbox Code Playgroud)

Roles.json

{  
   "run_list":[  
      "recipe[splunk-dj]",
      "recipe[tideway]",
      "recipe[AlertsSearch::newrelic]",
      "recipe[AlertsSearch]"
   ]
}
Run Code Online (Sandbox Code Playgroud)

预期的输出应该是这样的:

{  
       "environment":"INT",
    "run_list":[  
          "recipe[splunk-dj]",
          "recipe[tideway]",
          "recipe[AlertsSearch::newrelic]",
          "recipe[AlertsSearch]"
       ]
    }
Run Code Online (Sandbox Code Playgroud)

我只需要使用可用的内置bash命令将这两个json(以及其他类似这两个)合并为一个json。

我只能使用sed,cat,echo,tail,wc。

bash terminal cat

-3
推荐指数
1
解决办法
609
查看次数

"cat foo foo foo"有什么作用?

嘿我wana准备unix的各种基本命令,所以我需要这个ans.在unix中cat foo foo foo的输出是什么?我很困惑它会显示foo文件的输出三次或者我可能不知道的任何其他内容吗?任何帮助表示赞赏?

更新:实际上我没有安装UNIX,我只是准备测试.我知道这个问题不被问到,但除了这个之外我没有别的办法.甚至我已经搜索过了.

unix cat

-4
推荐指数
1
解决办法
1482
查看次数