Text-Processing
csv文件中的意外換行符
我有一個帶有一些意外換行符的 csv 文件。該文件看起來或多或少像這樣:
col1; col2; col3; col4 1a; 1b; 1c; 1d 2a; 2b; 2c ;2d # this should be in the row above 3a; 3b; 3c; 3d
我想連接以
;
之前行開頭的每一行,然後將其刪除。我怎樣才能做到這一點?
$ sed -e ' :loop $!N s/\n;/;/ tloop P;D ' file.csv
隨時在模式空間中保留 rwo 行。如果分號出現在下一行的開頭,則刪除換行符並循環返回以將下一行讀入模式空間。
當下一行沒有分號時,退出循環,列印到第一個換行符,刪除該部分並返回並在下一行附加到模式空間。
awk怎麼樣:
awk -F ';' '{while (NF < 4) {getline nextline; $0 = $0 nextline}} 1' file