从find中提取文件名列表,包括带空格的文件名

约翰

我想对特定目录中某种类型的每个文件进行处理。我用bash脚本写过

HANDIN_FILES=`find . -type f -printf "%f\n" | head -20 `
for i in $HANDIN_FILES
do
  echo $i
done

作为第一个版本。如果任何文件名中没有空格,这将非常有用。如果有一个文件silly name.txt,则i最终是第一个silly,然后是name.txt,这根本不是我想要的。

我知道我可以将所有do ... done内容放在命令中的-exec选项中find,但是我想将文件列表保留在shell变量中,以备后用。有人可以提出一种快速修复方法,该方法将使循环中的一次迭代i具有该值silly name.txt吗?

斯蒂芬·查泽拉斯(Stephane Chazelas)

使用bash4.4+:

readarray -td '' files < <(find . -type f -print0 | head -zn 20)
for i in "${files[@]}"; do
  something with "$i"
done

对于较早的bash版本:

files=()
while IFS= read -rd '' file; do
  files+=("$file")
done < <(find . -print0 | head -zn 20)

for i...

在这里,使用起来更简单zsh

files=(**/*(D.[1,20]))
for i ($files) something with $i

(至少文件列表将被排序,因此前20个更有意义)

请参阅为什么遍历find的输出是错误的做法?其他处理(或不处理)find输出的方式。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从文件列表中提取标题以及文件名

来自分类Dev

使用生成的文件名列表作为参数列表-带空格

来自分类Dev

使用生成的文件名列表作为参数列表-带空格

来自分类Dev

从文件名中提取文件版本

来自分类Dev

XmlDocument文件名带空格

来自分类Dev

从Python或R中的文件名列表中提取子字符串

来自分类Dev

从Python或R中的文件名列表中提取子字符串

来自分类Dev

从文件名PHP中提取日期

来自分类Dev

从文件名中提取数字

来自分类Dev

从路径中提取最新的文件名

来自分类Dev

从文件名中提取路径

来自分类Dev

从数据框中提取文件名

来自分类Dev

从文件名中提取数字

来自分类Dev

从内容处置中提取文件名

来自分类Dev

从文件名中提取版本

来自分类Dev

如何从文件名中提取Guid?

来自分类Dev

从文件名PHP中提取日期

来自分类Dev

在 Makefile 中提取目录/文件名

来自分类Dev

从zip存档中提取文件(不包括某些文件名)

来自分类Dev

从文件名中包含空格的文件中提取xml标记值

来自分类Dev

如何查找带空格的文件名的非空格版本

来自分类Dev

提取文件名

来自分类Dev

如何从特定文件夹中提取文件,文件名存储在python列表中?

来自分类Dev

打印除文本文件中指定的文件名以外的文件名列表

来自分类Dev

如何从Python中文件名列表中的文件名中删除扩展名?

来自分类Dev

如何使用正则表达式从文件路径列表中提取裸文件名

来自分类Dev

批量重命名文件名,包括空格和模式

来自分类Dev

从完整文件路径中提取文件名

来自分类Dev

从文件中提取文件名和数据