Come fare qualcosa di simile a questo codice D e Java in Rust?Come leggere, filtrare e modificare le linee da un file
Java:
import java.nio.file.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException
{
Files.lines(Paths.get("/home/kozak/test.txt"))
.filter(s -> s.endsWith("/bin/bash"))
.map(s -> s.split(":", 2)[0])
.forEach(System.out::println);
}
}
lingua D:
import std.algorithm;
import std.stdio;
void main() {
File("/home/kozak/test.txt")
.byLine
.filter!((s)=>s.endsWith("/bin/bash"))
.map!((s)=>s.splitter(":").front)
.each!writeln;
}
ho provato, ma mi sono perso con tutta questa roba proprietà
il mio codice di ruggine:
use std::io::BufReader;
use std::fs::File;
use std::io::BufRead;
use std::io::Lines;
fn main() {
let file = match File::open("/etc/passwd") {
Ok(file) => file,
Err(..) => panic!("room"),
};
let mut reader = BufReader::new(&file);
for line in reader.lines().filter_map(
|x| if match x { Ok(v) => v.rmatches("/bin/bash").count() > 0, Err(e) => false}
{ match x { Ok(v2) => Some(v2.split(":").next()), Err(e2) => None }} else
{ None })
{
print!("{}", line.unwrap());
}
}
E che cosa hai fatto finora? Dovresti avere abbastanza esperienza per capire che SO non è un sito dove lasci il tuo lavoro "per favore fallo per me" su altre persone. – GhostCat
colpa mia clicco posta troppo presto e non si rendono conto manca la mia prova – Kozzi11