2017-05-03 49 views
0

我有這樣的事情將文本多行與規範打成一行。數據

Title : Magic Moments     Artist: Perry Como 
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 7 

我需要這個

Magic Moments,Perry Como,Original American Songbook: 50,2005,Other (12),DrBN,7 

我是新與bash和我不知道我可以給你幫助得到這個 謝謝!

編輯

Title : Magic Moments     Artist: Perry Como      
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 7 
Title : Stormy Weather     Artist: Frank Sinatra     
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 8 
Title : Let There Be Love    Artist: Sammy Davis, Jr.    
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 9 
Title : Makin' Whoopee     Artist: Esther Williams    
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 10 
Title : Spanish Eyes     Artist: Al Martino      
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 11 
Title : 'S Wonderful {From An American Artist: Gene Kelly; Georges Guétary 
Album : Original American Songbook: 50 Year: 2005, Genre: Other (12) 
Comment: DrBN       Track: 12 
Title : Out Of My Head     Artist: John Newman     
Album : Tribute (Deluxe Edition)  Year: 2013, Genre: Pop (13) 
Comment: no coment      Track: 6 
+0

我想,單詞'Songbook'應該被跳過,因爲列名 – RomanPerekhrest

+0

你有沒有做足夠的研究來解決這個問題,然後發佈在這裏? – Inian

+0

RomanPerekhrest沒有這是從文件中的數據,它不能被跳過 英語是我已閱讀有關文本轉換,但這個例子現在似乎有點太難了。 我知道該怎麼做,但我不知道如何。 1)刪除'列'之間的空間 2)刪除新的線標記 3)也許得到的值過去: – Eken

回答

0

使用sedpaste,如

sed 's/Title *: //;s/ *Artist: /,/;s/Album *: //; s/ *Year: /,/;s/ *Genre: //;s/Comment: //;s/ *Track: /,/' | paste -sd, 

當然,如果你有多個記錄/專輯/歌曲,或如果字段名稱可能會發生變化,有更好的解決方案。

+0

謝謝,它對我來說是一個堅實的基礎,因爲你寫的名字可能會改變,再次感謝! – Eken