文件名中的空格“破坏”文件名脚本

鳄鱼

来自https://unix.stackexchange.com/a/612718/182280 的Terdon 示例 3

  1. 选择除名称以.sh结尾的所有文件.jkl

    $ shopt -s extglob nullglob
    $ files=(!(*.sh|*.jkl))
    $ echo "${files[@]}"
    file.abc file.ABC file.def file.ghi
    
    

挑战是文件中的空格导致脚本失败:

for f in ${files[*]}  #https://unix.stackexchange.com/q/278502/182280
do
 echo "Processing $f file... "
done

例如,文件中的空间在fi le1.jkl被脚本处理时“破坏”了文件并返回:

 processing `fi` file...
 processing `le1.jkl` file...

如何确保空格不会“破坏”文件名?

有助于澄清上下文/问题的评论表示赞赏。

斯蒂芬·基特

请参阅循环来自的问题的评论:您应该使用"${files[@]}"而不是${files[*]}. 这将确保数组中的每个条目都被正确引用,并通过for以下方式作为一个整体进行处理

for f in "${files[@]}"
do
 echo "Processing $f file... "
done

有关详细信息,请参阅有关数组的 Bash 手册部分

可以使用 引用数组的任何元素需要大括号以避免与 shell 的文件名扩展运算符发生冲突。如果下标是 ' ' 或 ' ',则单词扩展为数组名称的所有成员。仅当单词出现在双引号中时,这些下标才有所不同。如果单词是双引号,则扩展为单个单词,每个数组成员的值由变量的第一个字符分隔,并将name 的每个元素扩展为单独的单词。${name[subscript]}@*${name[*]}IFS${name[@]}

另请参阅$* 和 $@ 之间的区别是什么?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

脚本中的文件名中包含空格的问题

来自分类Dev

bash脚本无法处理文件名中的空格

来自分类Dev

传递给 bash 脚本的文件名中的多个空格

来自分类Dev

nuget在文件名中编码空格

来自分类Dev

如何从文件名中删除空格

来自分类Dev

文件名中的空格python 3.4.2

来自分类Dev

处理文件名中的空格

来自分类Dev

在Bash脚本中解析文件名

来自分类Dev

文件名被脚本缩短

来自分类Dev

Shell脚本问题,目录和文件名包含空格

来自分类Dev

文件名中带有空格的grep文件

来自分类Dev

如何列出文件名中包含空格的文件?

来自分类Dev

如何删除文件名中包含空格的文件?

来自分类Dev

在文件名matlab中打开文件,其中包含空格

来自分类Dev

BASH函数用于在打开文件名之前转义文件名中的空格

来自分类Dev

ls文件名如何按数字顺序在文件名中包含空格字符

来自分类Dev

bash脚本,在for循环中处理文件名中的空格奇怪的行为

来自分类Dev

ffmpeg:bash脚本中带有空格的文件名

来自分类Dev

无法确定bash脚本中带空格的文件名的引号应在何处

来自分类Dev

从所有文件名中删除括号和空格的批处理脚本

来自分类Dev

重击转义文件名中的空格,在变量中

来自分类Dev

检查文件名是否存在并在Google脚本中更新文件名

来自分类Dev

Bash Shell脚本从文件名中查找丢失的文件

来自分类Dev

根据批处理脚本中的文件名忽略文件

来自分类Dev

Unix-文件名开头的空格

来自分类Dev

XmlDocument文件名带空格

来自分类Dev

Android:ffmpeg,文件名包含空格

来自分类Dev

xargs,rm +文件名包含空格

来自分类Dev

文件名后的空格(Linux)

Related 相关文章

热门标签

归档