hek*_*mgl 86
您可以使用以下-quit选项find:
find <dir> -maxdepth 1 -type d -name '*foo*' -print -quit
Run Code Online (Sandbox Code Playgroud)
Adr*_*rth 10
pattern="foo"
for _dir in *"${pattern}"*; do
[ -d "${_dir}" ] && dir="${_dir}" && break
done
echo "${dir}"
Run Code Online (Sandbox Code Playgroud)
这比提供的其他shell解决方案更好
${dir}将为空)=~运算符(如果需要,则取决于您的模式)find)例如:
dir1=$(find . -name \*foo\* -type d -maxdepth 1 -print | head -n1)
echo "$dir1"
Run Code Online (Sandbox Code Playgroud)
或者(对于更好的shell解决方案,请参阅AdrianFrühwirth的答案)
for dir1 in *
do
[[ -d "$dir1" && "$dir1" =~ foo ]] && break
dir1= #fix based on comment
done
echo "$dir1"
Run Code Online (Sandbox Code Playgroud)
要么
dir1=$(find . -type d -maxdepth 1 -print | grep 'foo' | head -n1)
echo "$dir1"
Run Code Online (Sandbox Code Playgroud)
根据@ hek2mgl评论编辑了头-n1
接下来基于@Chepner的评论
dir1=$(find . -type d -maxdepth 1 -print | grep -m1 'foo')
Run Code Online (Sandbox Code Playgroud)
要么
dir1=$(find . -name \*foo\* -type d -maxdepth 1 -print -quit)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101019 次 |
| 最近记录: |