簡體   English   中英

如何使用awk修改此字段

[英]How can I use awk to modify this field

我正在使用awk從曲目開始時間列表中為長mp3創建一個.cue工作表,因此輸入內容可能如下所示:

01:01:00-Title-Artist
01:02:00:00-Title2-Artist2

當前,我使用“-”作為字段分隔符,以便可以捕獲開始時間,藝術家和標題以進行操作。

第一次可以像在提示表中一樣使用。 第二次時間需要轉換為62:00:00(提示表無法處理小時)。 做這個的最好方式是什么? 如有必要,我可以在小時部分將輸入文件中的所有時間都強制設置為“ 00:”,但我寧願不要這樣做。

最終,我希望擁有時間,標題和藝術家字段,其中時間字段的分鍾數大於60,而不是小時的分鍾數。

像這樣:

$ awk -F: '{if (NF>3) $0=($1*60+$2)FS$3FS$4}1' file
01:01:00-Title-Artist
62:00:00-Title2-Artist2

如果文件包含基於: split的4個或更多字段,它將以規則60*1st + 2nd連接1st和60*1st + 2nd FS表示字段分隔符,一開始設置為:

fedorqui的解決方案是有效的:只需將輸出通過管道傳遞到awk的另一個實例中。 但是,如果要在一個awk流程中執行此操作,則可以執行以下操作:

awk 'split($1,a,":")==4 { $1 = a[1] * 60 + a[2] ":" a[3] ":" a[4]}
    1' FS=- OFS=- input

拆分僅在第一個字段上起作用。 如果有4個元素,則該模式會在所需輸出中重寫第一個字段。

暫無
暫無

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

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