Arrays 在文件名中使用ls和空格进行迭代
我在Ubuntu上使用bash,我在文件夹中有一些文件,一些文件名称中有空格,其他文件则没有空格 我想要一个带有文件名的数组。 示例:[foo.txt、I am a file.txt、bar.jpg等] 我的代码:Arrays 在文件名中使用ls和空格进行迭代,arrays,bash,loops,space,Arrays,Bash,Loops,Space,我在Ubuntu上使用bash,我在文件夹中有一些文件,一些文件名称中有空格,其他文件则没有空格 我想要一个带有文件名的数组。 示例:[foo.txt、I am a file.txt、bar.jpg等] 我的代码: for x in "$(ls -1 test/)"; do fileList+=($x) done 我得到:[foo.txt、I、am、a、file.txt、bar.jpg等] 如果我把fileList+=(“$x”)放进一行数组[foo.txt我是一个file.txt
for x in "$(ls -1 test/)"; do
fileList+=($x)
done
我得到:[foo.txt、I、am、a、file.txt、bar.jpg等]
如果我把fileList+=(“$x”)
放进一行数组[foo.txt我是一个file.txt bar.jpg等]
我怎样才能得到我想要的
谢谢。尝试使用read,如下所示:
ls | while read f ; do
echo "$f"
done
尝试使用read,如下所示:
ls | while read f ; do
echo "$f"
done
为什么不使用shell globs呢?例如
for x in test/*; do
...
或
编辑:
也可能需要。为什么不使用shell globs?例如
for x in test/*; do
...
或
编辑:
也可能需要。+1为了避免在每个名称前面加上
test/
,请使用pushd-test;文件列表=(*);popd
在扩展全局之前更改工作目录。它非常适合我!谢谢;)但我还有一个问题要问其他人。如何删除所有字符串中的test/in?这里我得到了类似[test/foo.txt、test/bar.jpg等]的标签+1,为了避免在每个名字前面加上test/
,请使用pushd-test;文件列表=(*);popd
在扩展全局之前更改工作目录。它非常适合我!谢谢;)但我还有一个问题要问其他人。如何删除所有字符串中的test/in?在这里,我得到了类似[test/foo.txt、test/bar.jpg等]的标签。OP需要一种处理文件名中空格的技术,这就是。它只适用于包含空格的文件名子集,而不是所有文件名。谢谢你们两位的建议-我将尝试改革我的方式!OP需要一种技术来处理文件名中的空格,就是这样。它只适用于包含空格的文件名子集,而不是所有文件名。谢谢你们两位的建议-我将尝试改变我的方式!