【发布时间】:2015-04-27 20:01:14
【问题描述】:
我有一个名为 c 的数组。 它的元素是在当前目录中找到的文件名。我如何在他们自己的行上列出他们之前的数字? 例如:
1. aaa
2. filename2
3. bbb
4. asdf
我现在的代码只是将每个文件打印在自己的行上。喜欢:
aaa
filename2
bbb
asdf
我的代码如下:
#!/bin/bash
c=( $(ls --group-directories-first $*) )
printf '%s\n' "${c[@]}"
【问题讨论】:
-
你有没有为此尝试过?
-
您询问的是数组编号,而不是创建它们,但创建部分值得评论:
c=( $(ls --group-directories-first $*) )如果您的任何文件的名称中有空格,则会导致问题。 -
我现在看到了@John1024,感谢您提到这一点。知道如何解决这个问题吗?
-
最简单的是
c=( * )。这将创建一个包含所有文件名的数组,并且可以安全地使用文件名中的任何字符。但是,这种方法确实不提供--group-directories-first功能。