[英]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.