Çift tırnaklı alanlarda kırılma çizgisine sahip bir CSV dosyası ayrışıyorum. Dosya satırını groovy komut dosyasıyla okuyorum ama eksik belirteçleri almaya çalıştığımda bir ArrayIndexOutBoundException alıyorum.Çift tırnaklı alanlarda n ile CSV dosyasını ayrıştırma
Bu karakterleri kaldırmak için dosyayı önceden işlemeye çalışıyordum ve bunu bazı bash komut dosyalarıyla veya groovy'nin kendisi ile yapmayı düşünüyordum.
Sorunu çözmek için kullanabileceğim herhangi bir yaklaşım önerebilir misiniz?
Sonunda bunu ve çalışır:
header1,header2,header3,header4
timestamp, "abcdefghi", "abcdefghi","sdsd"
timestamp, "zxcvb
fffffgfg","asdasdasadsd","sdsdsd"
Bu benim
def csv = new File(args[0]).text
def bufferString = ""
def parsedFile = new File("Parsed_" + args[0]);
csv.eachLine { line, lineNumber ->
def splittedLine = line.split(',');
retString += new Date(splittedLine[0]) + ",${splittedLine[1]},${splittedLine[2]},${splittedLine[3]}\n";
if(lineNumber % 1000 == 0){
parsedFile.append(retString);
retString = "";
}
}
parsedFile.append(retString);
GÜNCELLEME
kullanıyorum harika script:Bu
gibi CSV böyle görünüyor (İlk sütunu zaman damgası tarafından okunabilir bir tarihe formatladım):gawk -F',' '{print strftime("%Y-%m-%d %H:%M:%S", substr($1, 0, length($1)-3))","($2)","($3)","($4)}' TobeParsed.csv > Parsed.csv
sen kurtarmaya
bir [Minimal, Tam, Doğrulanabilir örnekte] kod yayınlamak gerekir (http://stackoverflow.com/help/mcve) – pczeus
muhtemelen gerçek csv kullanmalıdır ayrıştırıcı –
Evet, https://github.com/xlson/groovycsv örneğin ... –