我想获取目录中的非目录文件列表。该find
命令有效,但该maxdepth 1
选项无效,可能是因为 Aix 不支持它。
这个命令:
find . -maxdepth 1 -type f
返回:
find: bad option -maxdepth
我使用了这个命令:
ls -l | grep ^- | awk '{print $9}'
但如果文件名包含空格,这将不起作用。有没有办法解决这个问题?
离开你的最后一次尝试,这似乎工作正常:
ls -l | grep ^- | awk '{for(i=1;i<9;i++) $i="";print}' | sed 's/^ //'
可能有更好的方法(我希望有!)但这会折叠前八个字段,留下八个空格,然后是行的其余部分(所以文件名中的空格是可以的),然后删除前八个空格.
我更喜欢这个切入正题的 bash 版本:
for f in *; do if [ -f "$f" ]; then echo "$f"; fi; done
我相信你可以为 ksh 调整它(我不熟悉)。
我仍然希望其他人会知道更直接的事情。
对于名称中包含多个空格的文件,这似乎对我有用。将其缩减为单个管道。
我个人想找到更优雅的东西。
ls -l | awk '/^-/ {for(i=9;i<=NF;i++){printf "%s ", $i}print "";}'