我有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;
提前致谢。
答案 0 :(得分:2)
我认为你在寻找:
while IFS=, read pattern filename; do
grep -e "$pattern" "$filename";
done < DC2LOGS.csv
(你肯定希望-e
能够防止模式的主要爆发,导致grep将其视为一种选择,并且你是否想要-E
取决于你。)
请注意,这将尝试使用第一行(标题),因此您可能需要:
sed -e 1d DC2LOGS.csv | while IFS=, read pattern filename; do
grep -e "$pattern" "$filename"
done
代替。