我有一个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
当然,这不起作用,但可以了解我的方向。
答案 0 :(得分:2)
让我们看看我是否理解正确...
$ 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