我必须编写一个bash脚本,必须在当前目录中找到目录,并且目录的名称必须以字母[A-z]字母开头。对于我写的shell:
find . -maxdepth 1 -name '[[:alpha:]]*' -type d
没关系。但在我写的脚本中:
#! /bin/bash
files=$(find . -maxdepth 1 -name '[[:alpha:]]*' -type d)
for FILE in $files; do echo 'you are in', $FILE; done;
但是,当它找到一个带有空格的目录(例如./New Directory
)时,输出是
./New
Directory
因为它是2个不同的目录。为什么?我该如何解决这个问题?
答案 0 :(得分:1)
这可能对您有用:
find . -maxdepth 1 -name '[[:alpha:]]*' -type d | sed 's/^/You are in /'
答案 1 :(得分:1)
find -maxdepth 1 -type d -regextype posix-awk -regex ".*/[A-Z].*" -exec echo "you are in" {} \;