我必须解析 ls -Al output
并获取文件或目录名
ls -Al
输出:
drwxr-xr-x 12 s162103 studs 12 march 28 2012 personal domain
drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_html
drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
我应该只使用 ls -Al | <something>
例如:
ls -Al | awk '{print $8}'
但这行不通因为$8
如果目录名称中有空格,则不是名称,它是名称的一部分。也许有一些实用程序可以删除姓氏或删除之前的任何内容?我需要找到任何解决方案。请帮忙!
已编辑:我知道 parse ls -Al 是个坏主意,但我应该用上面的构造准确地解析它!没办法使用这样的东西
for f in *; do
somecommand "$f"
done
最佳答案
如果您只需要文件名,请不要解析 ls -Al
。
您可以将所有文件名放在一个数组中:
files=( * )
或者您可以直接遍历文件:
for f in *; do
echo "$f"
done
如果 ls
中有您需要的特定内容,请更新您的问题以指定您需要的内容。
关于linux - shell 必须解析 ls -Al 输出并获取最后一个字段(文件或目录名)任何解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721925/