繁体   English   中英

将文件名列表与csv名称列表相对应

[英]Grep-ing a list of filename against a csv list of names

我有一个CSV文件,其中包含ID,数字列表,每行一个。 我们将该文件称为ids.csv。在一个目录中,我有大量文件,名称为“ file_123456_smth.csv”,其中123456是可以在ids csv文件中找到的id现在,我想要实现的目的:比较具有存储在ids.csv中的id的文件的名称。 如果在ids.csv中找到123456,则应显示文件名。 我试过的

ls -a | xargs grep -L cat ../../ids.csv

当然,这是行不通的,但是可以让我了解我的方向。

让我们看看我是否正确理解了你...

$ cat ids.csv 
123
456
789

$ ls *.csv
file_123_smth.csv  file_321_smth.csv  file_789_smth.csv  ids.csv

$ ./c.sh 
123 found in file_123_smth.csv
789 found in file_789_smth.csv

c.sh如下所示:

#!/bin/bash

ID="ids.csv"

for file in *.csv
do
    if [[ $file =~ file ]]    # just do the filtering on files
    then                      # containing the actual string "file"
        id=$(cut -d_ -f2 <<< "$file")
        grep -q "$id" $ID && echo "$id found in $file"
    fi
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM