在Bash中搜索包含特定字符串的特定扩展文件名

时间:2015-05-07 13:31:36

标签: bash

我想在一个Linux文件夹中搜索名称中包含字符串“2”的所有py文件。

我从以下代码开始:

for file in /home/sig/*.py;
do echo "$file is present"; 
done

但是我没有看到如何添加字符串搜索条件。

你能帮助我吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用find

find /home/sig/ -type f -name "*2*.py"

BTW,sh!= Bash。您使用标记了自己的问题,但在问题中询问Bash

修改

执行每个文件:

find /home/sig/ -type f  -name "*2*.py" -exec {} \;

答案 1 :(得分:2)

echo /home/sig/*2*.py

ls /home/sig/*2*.py

for file in /home/sig/*2*.py; do
  echo "$file was present"  # inherent race condition
done

循环不是非常可靠,因为当shell执行glob扩展以获取文件列表时,文件可能存在,但是当回显时它可能不存在。被执行。这可能是您的用例的学术问题,但通常可能是真正错误的来源。