【问题标题】:shell script to walk folders and sub-folders, convert time stamp to UTC format, and export .csv file用于遍历文件夹和子文件夹、将时间戳转换为 UTC 格式并导出 .csv 文件的 shell 脚本
【发布时间】:2018-06-20 08:57:52
【问题描述】:

大家好

我有大量的图像文件(大约 100 000 个)保存在 50 个文件夹和子文件夹中,我需要编写一个脚本来自动处理这些数据

我正在尝试为一个有点复杂的任务编写一个 Shell 脚本,我现在正在努力让它以正确的方式运行。所以,为了给你最好的描述,我将写下我想用这个脚本完成的主要事情如下:

首先:脚本必须遍历文件夹和子文件夹并提取文件名和完整路径

第二:文件名包含时间和日期信息。即:
20180612074405680。我需要脚本将其转换为 UTC 格式。即:2018 - 06 - 12 T 07:44:05 TZ +01:00

最后:我需要将所有这些都导出到 .csv 文件中,

我一直在尝试使用 find 命令来遍历文件夹和子文件夹并获取文件名,但我仍然无法获取文件的完整路径

任何人都可以请帮助或提供一些提示!

【问题讨论】:

    标签: shell csv filenames


    【解决方案1】:

    嗯,

    • 要使用find 获取绝对路径,您可以将基本路径添加到find,或者如果您已经在该路径上,请使用$(pwd),因此:

    find /path/to/my/files

    find $(pwd)

    • 要将此格式转换为 UTC,我看不出寻找一些日期转换工具的意义,只需更改字符串 E.G 会更容易:

    echo "${filename:0:4} - ${filename:4:2} - ${filename:6:2} T ${filename:8:2}:${filename:10:2}:${filename:12:2} TZ +01:00"

    由于您要从同一时区转换所有这些文件,而且可能是在同一天,因此它始终是同一时区,因此您可以简单地找出它是什么并逐字附加。

    【讨论】:

    • 你好@giladmayani,谢谢你的快速回答,但我认为这个解决方案不适用于遍历所有 50 个文件夹并同时获取文件名,另外,我如何导出这个到单个 .csv 文件?
    • 嗨@YacineWalid,如果您在基本文件夹上运行find $(pwd) -type f,它将输出所有文件夹和子文件夹中所有文件的名称。然后,您可以使用for 循环遍历find 的输出,对每个文件名执行您想要的任何处理并将其写入您创建的.csv 文件。阅读有关 shell for 循环和写入文件的更多信息(使用 echo>)。
    • 你的回答真的很有帮助,我会听从你的建议,但我仍然在努力得到我想要的东西,因为我是一个真正的 shell 脚本菜鸟,无论如何,如果你有可能的话给我更多的细节,这样我就可以更接近我的最终目标,这将是惊人的
    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多