이 SE 데이터 쿼리 의 .csv
출력을 다음 과 같이 출력 하고 있습니다 (5022 항목 만 해당).
"{
""id"": 281952,
""title"": ""Flash 11.2 No Longer Supported by Google Play""
}"
"{
""id"": 281993,
""title"": ""Netbeans won't open in Ubuntu""
}"
(그리고 ^M
[number]와 ""title ""사이에 줄 끝이 있습니다). 다음과 같이 표시해야합니다.
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu
나는 이것을 꽤 쉽게 이름이 남지 않는 특정 텍스트 편집기에서 수정했지만 쿼리를 새로 고칠 때마다 다시 할 필요가 없도록 다른 스크립트를 사용할 수 있도록 스크립트를 만들고 싶었습니다. 나는 사용했다 sed
...
이 일련의 명령은 완벽하게 작동합니다 (비효율적이지만 시행 착오 솔루션 일뿐입니다).
# 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
그렇다면 왜 그렇지 않습니까? ^M
and 만 {}
제거하면 나머지는 여전히 존재합니다.
#!/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
내 실수가 정말 분명하다고 확신합니다 ...
\r
.jq
제목 필드에 콜론 (첫 번째 줄)이있는 첫 번째 줄에서 끊어졌습니다. 나는 아직도 왜sed
나를 미워 하는지 확신하지 못하지만 인용문\r
과이 줄을 죽여서/,\r*/{N;/\n.*title.*:\s/{s/,\r*\n.*title.*:\s/,\ /}}
마침내 다음과 같이 작동 합니다 . 감사합니다 ^ _ ^