我想获取目录中的非目录文件列表。 find
命令正在运行,但maxdepth 1
选项不起作用,可能是因为Aix不支持它。
此命令:
find . -maxdepth 1 -type f
返回:
find: bad option -maxdepth
我使用了这个命令:
ls -l | grep ^- | awk '{print $9}'
但如果文件名包含空格,则不起作用。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
关闭你的最后一次尝试,这似乎没问题:
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(我不熟悉)。
我仍然希望别人知道更直接的事情。
答案 1 :(得分:0)
对于名称中包含多个空格的文件,这似乎对我有用。将其减少到一个管道 我个人希望找到更优雅的东西。
ls -l | awk '/^-/ {for(i=9;i<=NF;i++){printf "%s ", $i}print "";}'