grrs 的首次運行
在完成命令列參數章節後,我們學到了如何取得輸入參數,和我們可以開始準備實作寫出工具了。
目前我們的 main
函數中僅有一行:
let args = Cli::parse();
(我們刪除暫時放在那裡的 println
語句,得以證明我們的程式如預期般運作。)
讓我們先開啟我們得到的文件。
let content = std::fs::read_to_string(&args.path).expect("could not read file");
現在,讓我們疊代一下這些行並輸出包含每一個我們的模式:
for line in content.lines() {
if line.contains(&args.pattern) {
println!("{}", line);
}
}
總結
你的程式碼現在看起來應該是這樣的:
use clap::Parser;
/// Search for a pattern in a file and display the lines that contain it.
#[derive(Parser)]
struct Cli {
/// The pattern to look for
pattern: String,
/// The path to the file to read
path: std::path::PathBuf,
}
fn main() {
let args = Cli::parse();
let content = std::fs::read_to_string(&args.path).expect("could not read file");
for line in content.lines() {
if line.contains(&args.pattern) {
println!("{}", line);
}
}
}
來試試: cargo run -- main src/main.rs
是否能運行!