当前位置: 首页 > 面试题库 >

在Unix上按行/字段计数字符的出现

沈思博
2023-03-14
问题内容

给定一个包含这样数据的文件(即stores.dat文件)

sid|storeNo|latitude|longitude
2tt|1|-28.0372000t0|153.42921670
9|2t|-33tt.85t09t0000|15t1.03274200

什么命令返回每行出现“ t”字符的次数?

例如。会返回:

count   lineNum
   4       1
   3       2
   6       3

另外,要按字段计数出现次数,返回以下结果的命令是什么?

例如。输入第2列和字符“ t”

count   lineNum
   1       1
   0       2
   1       3

例如。输入第3列和字符“ t”

count   lineNum
   2       1
   1       2
   4       3

问题答案:

要计算每行字符的出现次数,您可以执行以下操作:

awk -F'|' 'BEGIN{print "count", "lineNum"}{print gsub(/t/,"") "\t" NR}' file
count lineNum
4       1
3       2
6       3

要计算每个字段/列中字符的出现次数,您可以执行以下操作:

第2栏:

awk -F'|' -v fld=2 'BEGIN{print "count", "lineNum"}{print gsub(/t/,"",$fld) "\t" NR}' file
count lineNum
1       1
0       2
1       3

第3栏:

awk -F'|' -v fld=3 'BEGIN{print "count", "lineNum"}{print gsub(/t/,"",$fld) "\t" NR}' file
count lineNum
2       1
1       2
4       3
  • gsub()函数的返回值是进行替换的次数。所以我们用它来打印数字。
  • NR 保留行号,因此我们用它来打印行号。
  • 对于特定字段的打印事件,我们创建一个变量fld,然后输入要从中提取计数的字段编号。


 类似资料:
  • 问题内容: 我有一张这样的桌子: 我试图弄清楚如何返回在每个DESCRIPTION中出现一个字符串的次数。 因此,如果我想计算“值”出现的次数,则sql语句将返回以下内容: 有什么办法吗?我根本不想使用php,而只是mysql。 问题答案: 这应该可以解决问题:

  • 我有一张这样的桌子: 我试图找出如何返回字符串在每个描述中出现的次数。 因此,如果我想计算value出现的次数,sql语句将返回以下内容: 有没有办法做到这一点?我根本不想使用php,只想使用mysql。

  • 问题内容: 我想计算一个分组的pandas dataframe列中字符串的出现。 假设我有以下数据框: 首先,我想GROUP BY和。对于这些组中的每一个,我都希望计算该列中的出现次数。 结果应如下所示: 通过两列进行分组很容易: 但是接下来呢? 问题答案: 调用对象的“得分”列,并使用vectorise方法,使用此方法过滤和调用: 要将其分配为列使用,以便聚合返回其索引与原始df对齐的序列:

  • 问题内容: 我将此数据插入了Elasticsearch: 旁注:重现: 1)下载:http://wmo.co/20160928_es_query/bulk.json 2)执行:卷曲-s -XPOST ‘ 的http://本地主机:9200 /测试/外部/ _bulk漂亮 ‘ -数据二进制@ bulk.json 问题: 获取每个“位置”有多少记录的计数。 解决方案1:存储桶聚合..没有得到期望的结果

  • 我有一个包含调度插槽的表,称为: ScheduleSlots 字段: id(int) scheduleID(int) time(datetime) availableslots(int) CalendarGroupID(int) Level(int) enabled(bit) 我想要设置一个gridview,在其中获取所有日期并计算每天的已启用和已禁用日期。 我不确定如何编写sql语句来执行此操作

  • 问题内容: 计算字符串中字符出现次数的最简单方法是什么? 例如,计算出现在其中的次数 问题答案: 返回sub范围中的子字符串不重叠的次数。可选参数并以片表示法解释。