(Sadece 5022 girişleri ile) bu gibi görünüyor bu SE veri sorgusunun.csv
çıkışı ile çalışıyorum :
"{
""id"": 281952,
""title"": ""Flash 11.2 No Longer Supported by Google Play""
}"
"{
""id"": 281993,
""title"": ""Netbeans won't open in Ubuntu""
}"
(Ve ^M
[sayı] ile "" başlık "" arasında satır sonları vardır ). Bunun gibi görünmesini istiyorum:
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu
Ben oldukça kolay isimsiz kalacak belirli bir metin editörü bu düzeltildi, ama ben sorgu yenilendi her zaman tekrar yapmak zorunda kalmamak için bir komut dosyası yapmak istedim ve böylece diğerleri kullanabilirsiniz. Kullandım sed
...
Bu komut dizisi mükemmel bir şekilde çalışır (her ne kadar verimsiz olsa da; sadece deneme-yanılma çözümü):
# Print the ^M and remove them, write to a new file:
cat -v QueryR* | sed 's/\^M//' > QueryNew
# remove all the other junk:
sed -i 's/{//' QueryNew
sed -i 's/}//' QueryNew
sed -i 's/""//g' QueryNew
sed -i 's/^"//' QueryNew
sed -i '/,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}' QueryNew
sed -i 's/^\s\+//' QueryNew
sed -i '/^\s*$/d' QueryNew
sed -i 's/^id:\ //' QueryNew
sed -i 's/,\ /,/' QueryNew
sed -i 's/\\//g' QueryNew
Peki, neden olmasın? Sadece ^M
ve {}
kaldırılır ve her şey hala oradadır.
#!/bin/bash
cat -v QueryR* | sed 's/\^M//' > QueryNew
sed -i '{
s/{//
s/}//
s/""//g
s/^"//
/,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}
s/^\s\+//
/^\s*$/d
s/^id:\ //
s/,\ /,/
s/\\//g
}' QueryNew
Eminim ki hatam çok açık ...
\r
.jq
başlık alanında iki nokta üst üste (ilk satır) olan ilk satırda kırıldı. Emin neden hala değilimsed
benden nefret ediyor, ama ben tırnak bazı öldürüp\r
bu çizgide/,\r*/{N;/\n.*title.*:\s/{s/,\r*\n.*title.*:\s/,\ /}}
ve nihayet gibi çalışır bu . Çok teşekkürler ^ _ ^