Chinaunix
标题:
目录下的文件名含中文及空格,如何把目录下所有的文件名赋值给数组变量?
[打印本页]
作者:
s1978256
时间:
2023-12-02 21:26
标题:
目录下的文件名含中文及空格,如何把目录下所有的文件名赋值给数组变量?
linux一个目录下的文件名包含有中文及空格等特殊字符,如何用一个数组变量存储目录下所有的文件名?使用array=$(ls *),会把有空格的文件名,以空格分割为两个文件名.
作者:
本友会机友会摄友会
时间:
2023-12-26 08:58
提示:
作者被禁止或删除 内容自动屏蔽
作者:
Shell_HAT
时间:
2024-02-04 11:05
回复
1#
s1978256
# 方法1
readarray -t array1 < <(ls -1)
echo ${array1[0]}
复制代码
# 方法2
mapfile -t array2 < <(ls -1)
echo ${array2[0]}
复制代码
# 方法3
for file in *; do
array3+=("$file")
done
echo ${array3[0]}
复制代码
作者:
BangBull
时间:
2024-03-06 11:41
漂亮
作者:
aqbssh
时间:
2024-11-17 19:08
本帖最后由 aqbssh 于 2024-11-17 19:49 编辑
回复
3#
Shell_HAT
为什么我的ls命令 把有空格的文件名自动加上了 单引号 ?
解决了,把 ls -1 的结果重定向到文件里就没有加 引号了。
大佬们的代码就是漂逸,,我以前都是 用find 查找 然后 用 read -r 选项 读取,每一行一个文件名 再处理。
find /home/a/tmp/ -type f 2>/dev/null | while read -r
截图_2024-11-17_19-13-16.png
(91.87 KB, 下载次数: 5)
下载附件
2024-11-17 19:24 上传
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2