我正在尝试为目录中的每个文件获取一行,至少包含以下字段(顺序无关紧要,尽管顺序更可取):
- Image resolution, in case it is an image. If not, just blank.
- Modification date
- Human readable file size
- Filename
目录中的文件是 jpg 图像,其余只是纯文本文件。我试过类似的东西:
find . -type f -exec paste `identify {} 2> /dev/null` `ls -goh {}` \;
ls
告诉我cannot access {}
。2> /dev/null
里面的部分identify
用于跳过非 jpg 文件的错误消息。
我也尝试过等等的不同组合xargs
,$()
但还没有找到办法。
有什么建议吗?
这看起来很适合嵌入式
-exec
脚本:样本输出是:
为了便于阅读,该脚本是:
请注意额外的引号以将单曲
\n
插入printf
.在 之外
find
,获取当前目录中文件的此类输出:样本输出是:
您可以根据需要更换零件或添加其他零件;对于第三个命令,只需添加另一个
%s
引用命令。我已经生成了一个简单的 CSV 类型的输出,但是如果您的文件名可能包含逗号,您应该引用文件名。如果您将文件大小从一个简单的字节字符串转换为在千位处带有逗号的字符串,则同上。
替换中的文本在查找甚至开始之前被评估一次。请注意,首选方式是 now
$( )
。您可以将引用的命令传递给 shell,但最简单的方法是只创建一个脚本并从find
.