簡體   English   中英

linux - 將具有不同行條目的 txt 文件轉換為.csv?

[英]linux - Convert txt file with entries on different lines to .csv?

我使用 exiftool 制作了包含我正在使用的一些圖像和視頻的 EXIF 數據的 .txt 文件。 我最終還需要為這些文件創建 .csv 清單,我知道有一些簡單的方法可以將 .txt 文件轉換為 .csv 文件,但我發現的說明已經描述了如果 .txt 文件有go 的信息在同一行內的不同列中,而我的信息在不同的行上。 有沒有辦法用組織不同的 .txt 文件進行這種轉換?

例如,我已經看到了如何轉換這樣的東西的說明

filename   date       size
abc.JPG    1/1/2001   1MB
def.JPG    1/1/2001   1MB
hij.JPG    1/1/2001   1MB

filename,date,size
abc.JPG,1/1/2001,1MB
def.JPG,1/1/2001,1MB
hij.JPG,1/1/2001,1MB

另一方面,我擁有的 .txt 文件的格式如下:

========abc.JPG
File Name            abc.JPG
Date/Time Original   2001:01:01 1:00:00
Size                 1 MB
========def.JPG
File Name            def.JPG
Date/Time Original   2001:01:01 1:01:00
Size                 1 MB
========hij.JPG
File Name            hij.JPG
Date/Time Original   2001:01:01 1:02:00
Size                 1 MB

但我仍然需要一個 output 之類的

filename,date,size
abc.JPG,2001:01:01 1:00:00,1 MB
def.JPG,2001:01:01 1:01:00,1 MB
hij.JPG,2001:01:01 1:02:00,1 MB

使用 sed 和Miller ,您可以運行

<input.txt sed -r 's/==.+//g;s/([a-zA-Z]) ([a-zA-Z])/\1-\2/' | mlr --x2c label filename,date,size >output.csv

具有

filename,date,size
abc.JPG,2001:01:01 1:00:00,1 MB
def.JPG,2001:01:01 1:01:00,1 MB
hij.JPG,2001:01:01 1:02:00,1 MB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM