【发布时间】:2021-06-19 21:37:39
【问题描述】:
这是我要过滤的完整文件的一部分:
Hashmode: 13761 - VeraCrypt PBKDF2-HMAC-SHA256 + XTS 512 bit + boot-mode (Iterations: 200000)
Speed.#2.........: 2038 H/s (56.41ms) @ Accel:128 Loops:32 Thr:256 Vec:1
Speed.#3.........: 2149 H/s (53.51ms) @ Accel:128 Loops:32 Thr:256 Vec:1
Speed.#*.........: 4187 H/s
目的是打印以下内容:
13761 VeraCrypt PBKDF2-HMAC-SHA256 4187 H/s
这是我尝试过的。 完整的文件称为complete.txt
cat complete.txt | grep Hashmode | awk '{print $2,$4,$5}' > mode.txt
输出:
13761 VeraCrypt PBKDF2-HMAC-SHA256
然后:
cat complete.txt | grep Speed.# | awk '{print $2,$3}' > speed.txt
输出:
4187 H/s
然后:
paste mode.txt speed.txt
问题是行不匹配。文件“complete.txt”中有大约 200 种模式可供过滤
我也有一种感觉,这可以通过使用sed 或 awk 的更简单的命令来完成。
【问题讨论】:
-
您的格式似乎有些不稳定;输出前后真的应该有空格吗?这些命令也不会产生您声称它们产生的内容(特别是,
Speed命令应该获取与您的示例匹配的所有行)。 -
顺便说一句,你想避免useless
cat,也可能是uselessgrep.