Làm cách nào để thực hiện điều gì đó tương tự với mã D và Java này trong Rust?Cách đọc, lọc và sửa đổi các dòng từ một tệp
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);
}
}
ngôn ngữ 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;
}
tôi thử nó, nhưng tôi bị mất với tất cả những thứ sở hữu này
đang rỉ của tôi:
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());
}
}
Và anh đã làm gì cho đến nay? Bạn nên có đủ kinh nghiệm để hiểu rằng SO không phải là một trang web mà bạn chỉ cần bỏ công việc của bạn "hãy làm điều đó cho tôi" trên người khác. – GhostCat
lỗi của tôi Tôi nhấp vào bài viết quá sớm và không nhận ra Đó là thiếu thử của tôi – Kozzi11