我想在一个Linux文件夹中搜索名称中包含字符串“2”的所有py文件。
我从以下代码开始:
for file in /home/sig/*.py;
do echo "$file is present";
done
但是我没有看到如何添加字符串搜索条件。
你能帮助我吗? 谢谢!答案 0 :(得分:2)
您可以使用find
:
find /home/sig/ -type f -name "*2*.py"
BTW,sh
!= Bash
。您使用sh标记了自己的问题,但在问题中询问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扩展以获取文件列表时,文件可能存在,但是当回显时它可能不存在。被执行。这可能是您的用例的学术问题,但通常可能是真正错误的来源。