精华内容
下载资源
问答
  • Linux统计文件中指定字符串个数

    千次阅读 2020-04-08 10:24:52
    统计一个文件中某个字符串的个数,其实就像在一块沙地里面找一块石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它跳过去(awk),然后统计自己跳了多少次...

    统计一个文件中某个字符串的个数,其实就像在一块沙地里面找一块石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它跳过去(awk),然后统计自己跳了多少次。

    方法1: grep(使用 -o)

    #grep 
    #-o, --only matching    show only the part of a line matching PATTERN
    
    # grep -o 'root' passwd | wc -l
    4 

     

    方法2: awk(使用 -v)

    #awk
    #-v var=val    --assign=var=val
    
    #awk -v RS='root' 'END{print --NR}' /etc/passwd
    4

    -v 去设定一个变量的值,RS是记录的分隔符,默认的是新行(\n),就是说awk按照一行一行读数据,但是现在RS为'haha'后,就按'haha'读数据了,NR为已读的记录数,n个记录是被n-1个分隔符分开的,所以就是--NR了。

     

    ^  - ^ ......

     

    展开全文
  • java 统计指定文件中字符个数 java 统计指定文件中字符个数
  • grep 查找文件中指定字符出现的次数

    千次阅读 2019-03-05 10:42:49
    grep 查找文件中指定字符出现的次数测试文件统计包含指定字符的行数统计包含指定字符的行数方法1方法2 测试文件 测试文件内容: 统计包含指定字符的行数 命令:cat test.log | grep -c test 如果一行一个...

    测试文件

    • 测试文件内容:
      • 在这里插入图片描述

    统计包含指定字符的行数

    • 命令:cat test.log | grep -c test
    • 如果一行中一个字符出现多次,这个会只统计一次
    • 命令执行结果:在这里插入图片描述

    统计包含指定字符的行数

    方法1

    • 命令:cat test.log | grep -o test | grep -c test
    • -o指示 grep显示所有匹配的地方,并且每一个匹配单独一行输出。
    • 命令执行结果:在这里插入图片描述

    方法2

    • 命令:cat test.log | grep -o test | wc -l
    • -o指示 grep显示所有匹配的地方,并且每一个匹配单独一行输出。
    • wc -l可以代替 grep -c test统计行数
    • 命令执行结果:在这里插入图片描述
    展开全文
  • 使用Linux命令统计文件指定中字符串出现次数

    使用脚本生成测试文件,内容为几种编程语言的随机列表

    此处使用了$RANDOM来生成随机数
    生成一个样例文件,如test_201709,文件内容只有一列

    #!/bin/bash
    
    generate_file="test_$(date +%Y%m)"
    names=(Java Shell C C++ Python Php Go)
    names_length=${#names[@]}
    rm -f ${generate_file}
    for i in {1..200}
    do
      random_num=$RANDOM
      index=$((random_num%names_length))
      echo "${names[${index}]}" >> ${generate_file}
    done

    统计各个语言出现的次数(以下测试中的次数重新生成文件后会不一样)

    此处文件名可直接使用上述文件名规则test_$(date +%Y%m)

    sort test_$(date +%Y%m) | uniq -c

    执行结果如下,第一列为次数:

    26 C
    27 C++
    32 Go
    27 Java
    33 Php
    29 Python
    26 Shell

    按出现次数由高到底排序

    sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr

    执行结果如下:

    33 Php
    32 Go
    29 Python
    27 C++
    27 Java
    26 C
    26 Shell

    找出出现次数最高或者最低的三种语言

    1.次数最高三种语言

    sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr | head -3

    执行结果如下:

    33 Php
    32 Go
    29 Python

    2.次数最低三种语言
    1)次数最低语言由高到低排序展示

    sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr | tail -3

    执行结果如下:

    27 Java
    26 C
    26 Shel

    2)次数最低语言由低到高排序展示

    sort test_$(date +%Y%m) | uniq -c | sort -k1,1n | head -3

    执行结果如下:

    26 C
    26 Shel
    27 Java

    以上操作针对是单列的文件,若对多列文件可用awk命令拆分出列,再进行以上操作即可

    awk的-F选项可以指定分割符,默认分割符为空字符,获取某一列命令如下
    n需要替换为具体列数

    awk '{print $n}' file_name
    awk -F ',' '{print $n}' file_name

    若需要查找第二列出现次数前三且列分割符为’,’,命令如下:

    awk -F ',' '{print $2}' file_name | sort | uniq -c | sort -k1,1nr | head -3

    查看文件行数

    file_name 可为多个文件,为多个时会把总行数显示,并且此时可按照行数排序来查找文件

    wc -l file_name

    例如在我当前测试目录下执行wl -l ./* 显示如下:

    12 ./generate.sh
    200 ./test_201709
    212 total
    展开全文
  • 统计文件中字符个数

    万次阅读 2015-09-02 09:49:22
    所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称 ...ASCII文件也称为文本文件,这种文件在磁盘存放时每个字符对应一个 字节,用于存放对应的ASCII码。例如,数字5678的存储形式

    所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称
    叫做文件名。文件通常是驻留在外部介质上的,在使用的时候才调
    入内存中。

    就文件的分类,有很多种分类方式,在这里我们看一下文件编码方式。
    根据文件的编码方式,文件可以分为ASCII码文件和二进制文件。
    ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个
    字节,用于存放对应的ASCII码。例如,数字5678的存储形式为:
    ASCII码: 00110101 00110110 00110111 00111000
    十进制码: 5 6 7 8
    共占用4个字节。ASCII码文件可在屏幕上按照字符显示。

    二进制文件是按照二进制的编码方式来存放文件的。例如,数字5678的
    存储形式为00010110 00101110,只占两个字节,二进制文件虽然可以在屏幕上显示,但是其内容无法读懂。C语言处理这些文件的时候,并不区分类型,都看成是字符流,按字节进行处理。

    文件指针在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对他所指的文件进行各种操作。定义文件指针的一般形式为”FILE “指针变量标识符。其中FILE应为大写,他实际上是由系统定义的一个结构,该结构中含有文件名,文件状态和文件当前位置等信息。在编写源程序的时候,不必关心FILE结构的细节。例如”FILE fp”表示fp是指向FILE结构的指针变量,通过fp即可找到存放某个文件信息的结构变量,然后按照结构变量提供的信息找到该文件,实施对文件的操作。

    在C语言中,文件操作都是由库函数来完成的。文件操作主要有打开,读写和关闭等。

    1:文件打开函数fopen

    fopen函数用来打开一个文件,其调用的一般形式为:
    文件指针名 = fopen(文件名,使用文件方式)
    其中,“文件指针名”必须被说明为FILE类型的指针变量,“文件名”是被打开文件的文件名。
    “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。
    例如:
    FILE fp;
    fp = fopen(“file.a”,”r”);
    //他的意思是在当前目录下打开文件file.a,只允许进行“读”操作,并且使得fp指向该文件
    使用文件的方式一共有12种。

    这里写图片描述

    对于文件使用方式有以下几点说明:

    文件使用方式由r,w,a,t,b,+共6个字符组合成,各个字符的含义是:r(read)读,w(write)写,
    a(append)追加,t(text)文本文件,可省略不写;b(binary)二进制文件;”+”读和写
    用r打开一个文件的时候,该文件必须已经存在,且只能从该文件读出
    用w打开的文件只能向文件中写入,若打开的文件不存在,则以指定的文件名建立
    该文件,如打开的文件已经存在,则将该文件删去,从新建立一个文件
    若要向一个已经存在的文件追加新的信息,只能用a方式打开文件。但此时该文件必须是
    存在的,否则将会出错。

    在打开一个文件的时候,如果出错,fopen将会返回一个空指针值NULL。在程序中可以
    用这一信息来判别是否完成打开文件的工作,并做相应的处理。举个例子:

    if((fp=fopen(“file.a”,”rb”)) == NULL)
    {
    printf(“\nerror no open file.a!”);
    getch();
    exit(1);
    }

    2:关闭文件

    调用的一般形式是:
    fclose(文件指针);
    正常完成关闭文件操作的时候,fclose函数返回值为0,如返回非零值则表示有错误发生

    3:文件读写函数

    在C语言中提供了很多文件读写的函数。字符读写函数fgetc和fputc;字符串读写函数fgets和
    fputs;数据块读写函数fread和fwrite;格式化读写函数fscanf和fprintf;这些函数
    都包含在stdio.h头文件中。

    (1):读字符函数fgetc

    fgetc函数的功能是从指定的文件中读取一个字符,函数的调用形式为:
    字符变量 = fgetc(文件指针);
    注意文件指针和文件内部的位置指针是不同的。文件指针是指向整个文件的,
    需要在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的
    位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,
    他不需要在程序中定义说明,而是由系统自动设置的。

    (2):写字符函数fputc

    fputc函数的功能是把一个字符写入指定的文件中,函数的调用形式为:
    fputc(字符,文件指针);
    fputc函数有一个返回值,如果写入成功,则返回写入的字符,否则返回EOF

    (3):字符串读写函数fgets和fputs

    读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,
    函数的调用形式为:
    fgets(字符数组名,n,文件指针);
    其中n是一个正整数,表示从文件中读出的字符串不超过n-1个字符,在读入的最后
    一个字符加上串结束标识’\0’。对fgets函数有两点说明:在读出n-1个字符之前,如果
    遇到了换行符或者是EOF,则结束操作。fgets函数也有返回值,其返回值是字符数组的首
    地址。
    写字符串函数调用形式:
    fputs(字符串,文件指针);

    (4):块数据读写函数fread和fwrite

    调用形式:
    fread(buffer,size,count,fp);
    fwrite(buffer,size,count,fp);
    buffer是一个指针,在fread中,他表示存放输入数据的首地址。在fwrite中,
    他表示存放输出数据的首地址。size表示数据块的字节数,count表示要读写的
    数据块的块数。

    (5)格式化读写函数fcanf和fprintf

    调用形式:
    fcanf(文件指针,格式字符串,输入表列);
    fprintf(文件指针,格式字符串,输出表列);

    下面就是我们这个实例的要求:

    编写统计文件的字符数的程序,主要学习文件的概念
    和文件操作等内容。
    

    下面是我的代码实现:

    #include <stdio.h>
    #include <stdlib.h>
    
    /**
     * 编写统计文件的字符数的程序,主要学习文件的概念
     * 和文件操作等内容。
     */
    int main()
    {
        /** 保存字符个数 **/
        int count = 0;
    
        /** 保存文件名 **/
        char fname[80];
    
        /** 文件指针 **/
        FILE *fp;
    
        printf("Please enter the file name:");
        scanf("%s",fname);
    
        if((fp = fopen(fname,"r")) == NULL){
            printf("Open file failed!!\n");
            exit(1);
        }
    
        count = 0;
        while(fgetc(fp) != EOF)
            count++;
    
        fclose(fp);
    
        printf("There are %d characters in file %s.\n",count,fname);
    
        return 0;
    }
    

    下面是我的测试用例(名称为test.txt):

    cnuidocncn  cwncviow 
    wedcvnwicvmnw 
    dcvnwidcvn 
    
    cvwiovm 
     wvcewoivm 
    w
    evcovw 
    vcmweiocvmw
    
    mvciomvw 
    nvi] v
    wevmovjov
    wvjkvnivpvm
    wvciwmvw
    'nvoikvv
    nvwvmje
    
    ewevvvv
    wvwkvnpowiehf]ewnveiowv

    好了,最后看一下我的运行过程:

    这里写图片描述

    除此之外,我们还可以对文件进行随机读写。在C中提供了一些文件定位的函数,我们常用的有两个:rewind和fseek。

    这两个函数的调用形式分别为:

    rewind(文件指针)。

    他的功能是把文件内部的位置指针移到文件首。

    fseek(文件指针,位移量,起始点);

    将文件内部位置指针移动到我们想要的位置。

    展开全文
  • 这里以python统计conv1_weight.h,‘.’的数量为例 #_s要统计字符 #file 文件路径和文件名 #返回统计的数量 def cul_str(file, _s): sum = 0 i = 0 f = open(file,mode='r')#打开文件 buff = f.read()#读取...
  • grep -o ‘好' | wc -l-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。
  • 统计单个文件字符串出现次数,语法:grep 字符串 文件名|wc -l ,grep输出,wc -l按行统计,每行重复只统计一个 如:统计task-hbase-transform.logNullPointerException出现的次数 grep NullPointerException ...
  • 主要介绍了java统计字符中指定元素出现次数方法,需要的朋友可以参考下
  • grep -o str filename|wc -l https://www.cnblogs.com/ywl925/p/3947778.html
  •  这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep...
  • 1、单个字符串 grep -o str_1 filename | wc -l 备注:单个字符串可以不加引号 2、多个字符串 grep -o str_1\|str_2\|str_3…… filename | wc -l 备注:必须加引号(单、双都可以) 如果不加引号,...
  •  //创建一个入流缓冲区对象用来读取文件  BufferedReader br = new BufferedReader(new FileReader("d:/123.txt"));    //定义一个字符串  String str="";  String line=null;    while((line...
  • 例:在a.txt 'abc' 字符串出现的个数 方法1: $ grep -0 'abc' &lt;a.txt|wc -l $ 36   方法2: $ cat a.txt |grep "abc" |wc -l $ 36   统计的结果会直接出来
  • 有时候我们需要对这些日志文件进行统计。Linux我们可以利用以下命令简单高效的实现这一功能。需要用到的命令简介 cat命令 cat命令主要有三大功能 1.一次显示整个文件 catfilename2.创建一个文件 cat filename 2...
  • #include #include using namespace std; int main() { int cnt = 0; FILE *fp=fopen("stdin", "r"); FILE *fout = fopen("stdout", "w"); fseek(fp, 0, SEEK_END); int filesize = ftell(fp);... fseek(fp, 0
  • linux统计一个文件中特定字符的个数

    千次阅读 2018-10-29 15:15:01
    统计一个文件中某个字符串的个数,其实就是在在一块沙地里面找石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它挖了(tr),最后统计自己挖了多少石头;有...
  • void ReadFile(int count[])//读取指定的磁盘文件 { char ch; int i = 0; //定义文件输入文件流infile,以输入方式打开磁盘文件input.txt ifstream infile("input.txt",ios::in|ios::nocreate); if(!infile) {
  • 检测文件中是否包含指定字符串(1KB)
  • grep -c 统计文件中字符串出现的行数

    千次阅读 2018-08-07 17:19:25
    分析日志时,有时会需要统计某个方法出现的次数,这时就要用到grep -c,如下命令 grep -c key_word file1 ...即依次返回每个文件中key_word出现的行数   与之类似的 grep key_word file1 file2 file3 |wc -...
  • 工具类的方法都是静态方式访问的因此将构造器私有不允许创建对象(绝对好习惯),且类定义为final型,不允许被继承 private CountStringUtil(){} /** * 统计给定文件中给定字符串的出现次数 * * @param filename ...
  • 【C语言】读取指定字符串在文本出现的位置(只适合小文本文件)
  • cat log_0 log_1 log_2 log_3 log_4 log_5 log_6 log_7 log_8 log_9 | grep ...1、先用cat命令读入多个文件 2、用grep 找到需要的行 3、用 wc -l 统计行数 转载自:https://blog.csdn.net/qq_28766327/article/de...
  • 给定一个txt文件,利用不同个数的线程查找文件中字符的个数,探究线程个数与查找时间的关系。 本作业代码使用JAVA实现,版本为10.0.2,使用的IDE为Eclipse4.9.0. 结果测试所用的txt文件内容为英文,编码格式为UTF...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 205,030
精华内容 82,012
关键字:

统计文件中的指定字符