首页 > 解决方案 > 将包含两个特定字符串的文件列表到bash中的数组中

问题描述

在一个目录内(没有任何子目录)我有几个文本文件。

我想创建一个包含文件列表的数组,其中包含特定的两个字符串说Started uploadingUPLOAD COMPLETE

for i /directory_path/*.txt; do
  #perform operations on 1
done

这是考虑目录中存在的所有文本文件。在这里,i我只想要包含上述字符串的文件。

任何建议/帮助都将得到重视!

标签: arraysbashpattern-matchingfile-processing

解决方案


如果您继续使用您的代码,那么可以执行此操作

declare -a files; 
for i in directory_path/*.txt; do
   if grep -q 'Started Uploading' "$i" && grep -q 'UPLOAD COMPLETE' "$i"; then
       files+=("$i")
   fi 
done

echo "matching files: ${files[@]}"

推荐阅读