Skip to content

Instantly share code, notes, and snippets.

@mosmeh
Created May 26, 2020 23:37
Show Gist options
  • Save mosmeh/32f2b0cc034ff535ab947de2aae15bca to your computer and use it in GitHub Desktop.
Save mosmeh/32f2b0cc034ff535ab947de2aae15bca to your computer and use it in GitHub Desktop.
use serde::{Deserialize, Serialize};
use std::env;
use std::fs::File;
use std::io::Write;
use std::io::{BufRead, BufReader, BufWriter};
#[derive(Serialize, Deserialize)]
struct Article {
id: String,
title: String,
url: String,
text: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let input_filename = env::args().nth(1).ok_or("input filename required")?;
let output_filename = env::args().nth(2).ok_or("output filename required")?;
let reader = BufReader::new(File::open(input_filename)?);
let mut writer = BufWriter::new(File::create(output_filename)?);
for line in reader.lines() {
if let Ok(article) = serde_json::from_str::<Article>(&line?) {
writeln!(writer, "{}", article.text.replace("\n", " "))?;
}
}
Ok(())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment