Unix while循环中的Grep

Unix while循环中的Grep,unix,grep,Unix,Grep,我有一个CVS文件,它是用逗号分隔的搜索模式和文件名。我想阅读CVS以获取搜索模式和文件,并执行grep。我试过了,但没用。此字段中的任何指针都将非常有用。请查找CSV文件(DC2LOGS.CSV) SearchPattern,FilenamewithPath -116329548,/opt/httpd/logs/apps/atasvc/prod3/was70/atasvc-59596/ata.log -91756,/opt/httpd/logs/apps/atasvc/prod3/was70/

我有一个CVS文件,它是用逗号分隔的搜索模式和文件名。我想阅读CVS以获取搜索模式和文件,并执行grep。我试过了,但没用。此字段中的任何指针都将非常有用。请查找CSV文件(DC2LOGS.CSV)

SearchPattern,FilenamewithPath
-116329548,/opt/httpd/logs/apps/atasvc/prod3/was70/atasvc-59596/ata.log
-91756,/opt/httpd/logs/apps/atasvc/prod3/was70/atasvc-59596/ata.log
-86160,/opt/httpd/logs/apps/atasvc/prod3/was70/atasvc-59596/ata.log.1
Grep代码:

 cat DC2Logs.csv | while read a b c d e; do grep  -E "CLAManager.getAttributeFromCLAMapping() took.*$d.*"  < "$e";  done;
cat DC2Logs.csv |在读取b c d e;do grep-e“CLAManager.getAttributeFromCLAMapping()时执行。*$d.*”<“$e”;完成;

提前谢谢。

我想您正在寻找:

while IFS=, read pattern filename; do 
  grep -e "$pattern" "$filename"; 
done < DC2LOGS.csv

相反。

您试图实现什么?我正在尝试执行动态grep,其中输入和文件名来自CSV文件。当我尝试运行以下命令时,我遇到以下错误。我正在使用-E选项。错误:-grep:CLAManager.getAttributeFromCLAMapping()take.*-226746.*:没有这样的文件或目录。我不知道如何解决这个问题。我正在学习unix。将
grep
替换为
echo
,看看这个命令是否有意义。我现在明白了,您希望从文件读取的模式只构成模式的一部分,所以使用
grep-E-E“CLAmanager…$pattern”“$filename”
sed -e 1d DC2LOGS.csv | while IFS=, read pattern filename; do
  grep -e "$pattern" "$filename"
done