【发布时间】:2017-09-09 06:07:41
【问题描述】:
假设我有一个名为 RESULTS.txt 的文件,其内容如下:
SUCCESS JON DOE
SUCCESS JON DOE
SUCCESS JANE DOE
FAILURE JON DOE
FAILURE JANE DOE
我现在需要做的是从包含单词“SUCCESS”的每一行中“提取”名称(JON DOE 或 JANE DOE)。我用 awk 解决了这个问题:
awk '/SUCCESS/ {print $2 $3}'\; RESULTS.txt 这给了我以下输出:
JON DOE
JON DOE
JANE DOE
名称的提取工作正常。我现在的问题是我需要每场比赛,或者在这种情况下每个名字,只需要一次。换句话说:我想要一个产生以下输出的命令:
JON DOE
JANE DOE
我知道一种可能性是编写一个脚本,例如,将每个匹配项存储到一个数组中。然后我可以遍历数组搜索是否已经有一个同名的条目,然后再插入一个新条目。
但我正在寻找的是一种无需使用数组或写入文件即可解决此问题的精益解决方案。
我正在使用 AIX 机器。
任何帮助表示赞赏。
【问题讨论】:
标签: bash unix awk scripting aix