在 Linux 系统使用中,我们经常需要查看或统计文本文件中的行数,字数,字节数等内容,那么怎么快捷的统计出文件中这些关键数据呢。

在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这个命令就是 wc。

首先我们介绍下 wc 这个命令:

wc --help

用法:wc [选项]... [文件]...

或:wc [选项]... --files0-from=F

输出每个指定文件的行数、单词计数和字节数,如果指定了

多于一个文件,继续给出所有相关数据的总计。如果没有指定

文件,或者文件为"-",则从标准输入读取数据。

-c, --bytes 输出字节数统计

-m, --chars 输出字符数统计

-l, --lines 输出行数统计

--files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被

指定为"-"则从标准输入读文件名

-L, --max-line-length 显示最长行的长度

-w, --words 显示单词计数

--help 显示此帮助信息并退出

--version 显示版本信息并退出

帮助说明中简介明白的介绍了wc的用法,我们来举例说明下:

1、获取文件中行数

wc -l app.log

输出

455452 app.log

2、获取文件中单词数

wc -w app.log

输出

4855263 app.log

3、获取文件中字节

wc -c app.log

输出

95169019 app.log

是不是很简单呢。

查询文件的行数或字数只是个简单的需求场景,有时候我们其实是要获取多少匹配关键字的行数,那么这种情况如何实现呢,这种情况我们需要使用另外一个grep命令来配置wc来完成我们的需求场景。

首先我们看看grep这个命令:

grep --help

用法: grep [选项]... PATTERN [FILE]...

在每个 FILE 或是标准输入中查找 PATTERN。

默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。

例如: grep -i 'hello world' menu.h main.c

正则表达式选择与解释:

-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。

-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)

-P, --perl-regexp PATTERN 是一个 Perl 正则表达式

-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作

-f, --file=FILE 从 FILE 中取得 PATTERN

-i, --ignore-case 忽略大小写

-w, --word-regexp 强制 PATTERN 仅完全匹配字词

-x, --line-regexp 强制 PATTERN 仅完全匹配一行

-z, --null-data 一个 0 字节的数据行,但不是空行

Miscellaneous:

-s, --no-messages suppress error messages

-v, --invert-match select non-matching lines

-V, --version print version information and exit

--help display this help and exit

--mmap ignored for backwards compatibility

Output control:

-m, --max-count=NUM stop after NUM matches

-b, --byte-offset print the byte offset with output lines

-n, --line-number print line number with output lines

--line-buffered flush output on every line

-H, --with-filename print the filename for each match

-h, --no-filename suppress the prefixing filename on output

--label=LABEL print LABEL as filename for standard input

-o, --only-matching show only the part of a line matching PATTERN

-q, --quiet, --silent suppress all normal output

--binary-files=TYPE assume that binary files are TYPE;

TYPE is `binary', `text', or `without-match'

-a, --text equivalent to --binary-files=text

-I equivalent to --binary-files=without-match

-d, --directories=ACTION how to handle directories;

ACTION is `read', `recurse', or `skip'

-D, --devices=ACTION how to handle devices, FIFOs and sockets;

ACTION is `read' or `skip'

-R, -r, --recursive equivalent to --directories=recurse

--include=FILE_PATTERN search only files that match FILE_PATTERN

--exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN

--exclude-from=FILE skip files matching any file pattern from FILE

--exclude-dir=PATTERN directories that match PATTERN will be skipped.

-L, --files-without-match print only names of FILEs containing no match

-l, --files-with-matches print only names of FILEs containing matches

-c, --count print only a count of matching lines per FILE

-T, --initial-tab make tabs line up (if needed)

-Z, --null print 0 byte after FILE name

Context control:

-B, --before-context=NUM print NUM lines of leading context

-A, --after-context=NUM print NUM lines of trailing context

-C, --context=NUM print NUM lines of output context

-NUM same as --context=NUM

--color[=WHEN],

--colour[=WHEN] use markers to highlight the matching strings;

WHEN is `always', `never', or `auto'

-U, --binary do not strip CR characters at EOL (MSDOS)

-u, --unix-byte-offsets report offsets as if CRs were not there (MSDOS)

‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。

直接使用‘egrep’或是‘fgrep’均已不可行了。

不带 FILE 参数,或是 FILE 为 -,将读取标准输入。如果少于两个 FILE 参数

就要默认使用 -h 参数。如果选中任意一行,那退出状态为 0,否则为 1;

如果有错误产生,且未指定 -q 参数,那退出状态为 2。

我们通过如下命令方式来实现查询匹配到关键字'error'中文件行数。

grep 'error' app.log |wc -l

是不是很简单,如果希望了解更多,不妨通过man命令来查看你想了解的命令吧。

linux查看文件内容行数,Linux 中如何查看文件的行数,字数,字节数相关推荐

  1. linux shell 读取csv文件内容,在Shell脚本中读取CSV文件,直到没有标题的行结束

    我有一个名为'readfile.csv'的文件,其中包含以下内容. Name Id VAl Number IP James,007,$500,111-111-111,111-000-000 Bond, ...

  2. linux c 追加写文件内容,如何在C中追加到文件,在Linux上使用O_APPEND模式打开?

    这是家庭作业的一部分.好吧,我的作业无法正常工作,所以我已经把一个片段拿出来并开始用它来弄清楚什么是错的. 在C语言的Linux上我试图打开/创建一个文本文件,给它写一些东西,关闭它,在读/写和追加模 ...

  3. linux的子进程和父进程,[Linux进程]在父进程和子进程中分别对文件进行操作

    [Linux进程]在父进程和子进程中分别对文件进行操作 发布时间:2020-04-10 19:36:49 来源:51CTO 阅读:917 作者:银河星君 /*子进程和父进程同时对一个文件进行写操作导致 ...

  4. bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...

    如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g) 我有Oracle 11g备份文件(.bak文件)如何在Oracle 11g ...

  5. Linux 中的五种查看文件内容的命令 and 三种搜索文件的命令

    一.查看文件内容的命令 1.head 命令 作用:查看文件的头部内容 使用:head [参数] 文件名 参数:-n,-c 案例:查看 yzc 的文件的前5行内容 查看 yzc 的文件的前5个字母 he ...

  6. linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...

    原标题:生信分析过程中这些常见文件的格式以及查看方式你都知道吗? 生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据 fastq 之外,还需要准备基因组文件 fasta 格式和基因注释文件 ...

  7. linux 读取zip文件内容,如何从linux服务器上的大(30Gb)zip文件中提取文件

    1)从大型zip文件中提取 我想从linux服务器上的大型zip文件(30Gb)中提取文件.有足够的可用磁盘空间. 我试过jar xf dataset.zip.但是,按钮已满,出现错误,无法提取所有文 ...

  8. linux查看php执行用户,在浏览器中打开php文件时,是Linux中的哪个用户执行的?...

    如题,这样我就可以针对这个用户设置权限了.而且这个用户是怎么关联上的,怎么查看? 回复内容: 如题,这样我就可以针对这个用户设置权限了.而且这个用户是怎么关联上的,怎么查看? 是执行 PHP 指令的那 ...

  9. matlab中读文件的行数_Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...

  10. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

最新文章

  1. 【PDF下载】无意中发现的另一本 统计学入门好书
  2. Ipython 和 python 的区别
  3. plc和pc串口通讯接线_Plc与pc串口调试手册
  4. 窗体之间传值的暴力方法
  5. java的xml面试题_Java程序员的10个XML面试问答
  6. 帝国CMS7.2仿极客网互联网自媒体门户模板
  7. mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享
  8. 【iCore4 双核心板_ARM】例程二十九:SD_IAP_FPGA实验——更新升级FPGA
  9. BAT监视360进程.txt
  10. 苹果xsmax怎么开机_苹果XS/xs max按钮浮标怎么设置?
  11. android studio实现ar,在Android Studio上运行EasyAR
  12. openstack镜像格式转换
  13. VMWare安装Deepin系统
  14. 万用表的灵活使用,不仅只有基本使用方法!
  15. OpenWRT下使用dnspod解析动态域名
  16. 正则表达式——(2) 匹配、切割、替换、获取
  17. 群晖NAS用户和用户组权限讲解
  18. Android基于讯飞AIUI的聊天Demo
  19. 微软宣布Azure DNS全面通用
  20. CString、CTime和COleDateTime转换

热门文章

  1. 5款良心电脑软件,有一款虽已停更,却依然免费使用
  2. 0.1.3-01 合宙CORE-ESP32-C3制作1.3寸ST7789驱动的简单相册
  3. android 将文字转换为拼音格式,android中将汉字转为拼音
  4. ajax请求 下载zip压缩包
  5. 下载Android App的历史版本
  6. 宝塔面板下载网站日志,分析百度蜘蛛和谷歌蜘蛛的爬取记录
  7. 纯js制作图片轮播效果
  8. Python基础:第015课——弹跳的小球(优化版),条件语句和常量
  9. 路由与交换技术-18-热备份路由选择协议HSRP
  10. Python的异步编程介绍(MD)