【发布时间】:2015-12-29 08:43:06
【问题描述】:
我有一个包含深度嵌套目录的文件系统。在树中任何节点的底层目录中都有一个目录,其名称是数据库中记录的guid。此文件夹包含附加到该记录的二进制文件(pdf、jpg 等)。
两个示例路径:
/g/camm/MOUNT/raid_fs0/FOO/042014/27/123.456.789/04.20.30--27.04.2014--RJ123.pdf
/g/camm/MOUNT/raid_fs1/FOO/052014/22/321.654.987/04.20.30--27.04.2014--RJ123.pdf
在上面的例子中,123.456.789 和321.654.987 是guids
我想建立一个完整文件系统的索引,以便我可以在我的数据库中创建一个查找表,以便轻松地将记录的guid 映射到其附加文件的绝对路径。
我可以很容易地生成一个直接的文件列表:
find /g/camm/MOUNT -type f > /g/camm/MOUNT/files.index
但我想将每个文件路径的输出解析为 CSV 文件,如下所示:
GUID ABSOLUTEPATH FILENAME
123.456.789 /g/camm/MOUNT/raid_fs0/FOO/042014/27/123.456.789/04.20.30--27.04.2014--RJ123.pdf 04.20.30--27.04.2014--RJ123.pdf
321.654.987 /g/camm/MOUNT/raid_fs1/FOO/052014/22/321.654.987/04.20.30--27.04.2014--RJ123.pdf 04.20.30--27.04.2014--RJ123.pdf
我想我需要将 find 命令的输出通过管道传输到 xargs 并再次传输到 awk 以将输出的每一行处理为 CSV 输出所需的格式......但我做不到工作……
【问题讨论】:
-
extremely slow是什么意思?如果 find 对你来说太慢了,你可以考虑写一个程序来多线程遍历 FS 树.. -
我已经编辑了这个问题以删除有关性能的问题...实际上我只是在寻找一个可以在运行时将
find的输出解析为所需 CSV 格式的命令。
标签: linux indexing awk grep find