gpt4 book ai didi

bash - 计算一列中具有特定符号的行数(来自 grep 的结果)?

转载 作者:行者123 更新时间:2023-11-29 09:35:11 25 4
gpt4 key购买 nike

假设我有一个文件,file.txt:

F1 ID1 *
F1 ID2 *
F1 ID1 -
F1 ID3 *
F2 ID2 *
F1 ID3 *
F2 ID1 *
F1 ID1 -
F2 ID1 -
F2 ID3 *

目标是将文件限制为第一列中带有 F1 的行,并找出第三列中带有“-”的行数...然后除以第一列中带有 F1 的总行数专栏。

F1 ID1 *
F1 ID2 *
F1 ID1 -
F1 ID3 *
F1 ID3 *
F1 ID1 -

在这种情况下 2/6 = 0.333

到目前为止我做了什么:

我首先找到第一列为 F1 的所有行并将其存储在一个变量中,

result=$(grep F1 file.txt)

但它并没有按照我的意愿行事。为什么$result中只存了grep的最后一行?

echo $result
F1 ID1 -

最佳答案

你可以这样做:

$ grep ^F1 test.txt | awk '{sum += 1; if($3=="-") dash += 1} END {print dash/sum}'
0.333333

解释:

  • ^F1 表示给我以 F1 开头的行
  • 将其输出发送到 awk
  • 对于 awk 获取的每一行,它递增 sum;如果第 3 列是 -
  • ,则增加 dash
  • 读取所有行后(END),打印数学结果

关于bash - 计算一列中具有特定符号的行数(来自 grep 的结果)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33272296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com