linux计算目录下wc,Linux wc命令详解

通常利用Linux的wc命令和其他命令结合来计算行和其他信息。

在Linux下用wc进行计数。返回文件的行数、字数、字节数等。

看个例子:

wc wc1.txt

3  5 16 wc1.txt

输出信息依次是:行数 字数 字节数 文件名称。再具体点,单个统计。

wc -m filename:显示一个文件的字符数

wc -l filename:显示一个文件的行数

wc -L filename:显示一个文件中的最长行的长度

wc -w filename:显示一个文件的字数

需要留意的:貌似wc统计的行算是用换行符来确定的。就是说最后一行要有换行符,最后wc的行数才是正确的,否则将会少一行。

为了说明这个问题,看一个perl的测试:

perl -e 'print "a"'|wc

0       1       1

perl -e 'print "a\n"'|wc

1       1       2

上面的例子中print命令将a打印出来,如果不带换行符\n,则认为这一行不存在。

有以下几点说明:

1:一个汉字占三个字节(未经验证,个人认为是两个字节),一个回车符等不可见字符也占一个字节

2:一行的末尾如果没有回车符,则不算是一行,也就是说,如果一个文件的最后一行末尾没有换行符,wc命令统计的行数会比实际行数少一,所谓实际行数是你所看到的行数,实际上,没有回车符,确实不能算作一行(注:若是在一个已存在的文本中,则默认为所有的行都有一个不可见的回车符)  3:所谓一个字就是连续的字符,即不被空字符分割的连续的字母或者汉字算作是一个字

例如下面是一个叫abc.txt的文本,利用vi打开后的情况:(为了明细起见我们把回车符用箭头┘表示,实际中是没有的)

You are nice.

Right??

OK.

~

~

~

You are nice.┘

Right??┘

OK.

~

~

~

则:

wc  abc.txt

6     5      28   abc.txt

即6行,5个word,28个字符。我们来数一下。

包括看不见的回车符共有6行;

不被空字符分割的连续的字母共有5个,分别是You、are、nice.、Right??、OK.

字节(或字符)包含了回车符共28个。

举例:

example1:linux下如何统计一个目录下的文件个数以及代码总行数的命令知道指定后缀名的文件总个数命令:

find . -name "*.cpp" | wc -l

知道一个目录下代码总行数以及单个文件行数:

find . -name "*.h" | xargs wc -l

example2:linux统计文件夹中文件数目

第一种方法:

ls -l|grep “^-”|wc -l

ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)。如果ls -lR|grep “^-”|wc-l则可以连子目录下的文件一起统计。

grep ^- 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

第二种方法:

find ./ -type f|wc -l

由于默认find会去子目录查找,如果只想查找当前目录的文件用find ./ -maxdepth 1 -type f|wc -l即可。

需要说明的是第二种方法会比第一种方法快很多,尤其是也统计子目录时。

example3:想知道多少个用户登录了系统?

who | wc -l

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统生成的新文件是什么编码的,Linux系统的默认编码怎样设置?

修改/etc/sysconfig/language文件,将RC_LANG, RC_LC_ALL设置为zh_CN。GB2312, 同时将ROOT_USES_LANG设置为 "yes"一。Linux系统的默认编码设置。/etc/sysconfig/i18nControls the system font settings。The language variables are used in /etc/profile…

linux进程如何挂起自己,Linux Server HTTP进程每天挂起服务器

我从LayeredTech租用一台Linux VM,它是Xen Hypervisor的客户.操作系统是CentOS 5.3,运行Apache2.几乎每天我的服务器都会以这样的方式表现出来让我相信自己是DDoS,但我找不到任何证据.我正在运行Apache Mod_security,MySQL 5.x,PHP 5.x,在版本方面一切都是最新的.VM相对较低,但…

五款救急的linux文件恢复软件,五款救急的Linux文件恢复软件

BKJIA快译】文件有备份,啥子也不愁!文件无备份,啥子也白搭。但是,面对突如其来的悲剧,文件恢复软件来帮忙时可以尽量最小化减小损失。下面Linux用户需知的5款文件恢复软件:#1,Ddrescue主页&…

linux远程计算,如何使用Linux应用服务器场的远程计算?

您已经听说过 Web 2。0 了,是么?很好,这就是 “效用计算 2。0”,它是网络引导、SSL、VNC 和其他熟悉的概念和技术 —— 所有这些技术都是在 Linux? 上使用的 —— 它可以带来极大的投资回报。请了解加州大学是如何设置服务器场环…

linux基础服务,Linux基础

系统常识通过xshell工具来连接Linux服务器Linux,windows,macos 三大操作系统windows(win7,win10,winxp)linux(Redhat/红帽,centos,ubuntu/乌班图 版本)Centos又有centos6.0/centos6.5/centos7.0版本[image:…

linux 网络路径中网络协议栈有几种,linux网络路径中网络协议栈有几种

网络路径有很多种,其中的linux网络路径是最常用的,也是最需要关注的。linux网络路径中网络协议栈有几种?电脑新装系统漏洞应不应该修复?了解网络安全常识,首先就要了解计算机网络安全有哪些基本注意事项,下面佰佰安全网小编就带…

linux sysstat rpm包下载,[20141201]SYSSTAT软件包.txt

[20141201]SYSSTAT软件包.txtlinux下有一个软件包SYSSTAT。# rpm -qi sysstatName : sysstat Relocations: (not relocatable)Version : 7.0.2 Vendor: Oracle AmericaRelease : 12.0.1.el5 …

linux开发板显示百叶窗图片,03Linux命令操作2

第一天第一个小时嵌入式介绍,何为嵌入式,为什么学习嵌入式,嵌入式的发展前景,嵌入式的具体工作岗位以及薪资待遇如何。第二个小时项目介绍1.为什么需要项目的的沉淀,企业需要什么样的嵌入式开发人才2.项目背景介绍1.项…

华硕T100 安装linux,【华硕T100TA3740评测】双硬盘组合 华硕T100TA挑战存储极限(全文)_华硕 T100TA3740_笔记本评测-中关村在线...

一直以来产品线的细化和完善完全是在于对于行业空白的填补而实现的,比如笔记本电脑的推出就为了弥补人们移动办公的空白,而平板电脑的推出是为了弥补智能手机和笔记本电脑市场的空白。2010年推出的iPad可谓创造了一个全新的品类——平板电脑,…

linux dev sda1 满了,/dev/sda1把磁盘几乎都满了,我该怎么办呢??

rootfxx-desktop:/etc# df文件系统 1K-块 已用 可用 已用% 挂载点/dev/sda1 7913216 7491988 22416 100% /varrun 127836 116 127720 1% /var/runvarlock 127836 0 127836 …

c语言中的set是置1嘛,c ++ - 如何检查元素是否在std :: set中?

如果您要添加std::set函数,它可能如下所示:#include #include template inlinebool contains(TInputIterator first, TInputIterator last, const T& value){return std::find(first, last, value) ! last;}template inlinebool contains(const TCon…

单片机读tf卡c语言程序,单片机读写U盘闪盘超精简C源程序

#i nclude "CH375INC.H"#i nclude/* 以下定义适用于MCS-51单片机,其它单片机参照修改 */#define UINT8 unsigned char#define UINT16 unsigned short#define UINT32 unsigned long#define UINT8X unsigned char xdata#define UINT8VX unsigned c…

用四位led数码管作显示器的篮球比赛24秒计时器求c语言代码,单片机编程控制LED七段数码管作显示的篮球赛计时计分系统...

本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。系统应具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。内容包括:显示、键盘、时钟等内容设计说明2.1需求分析2.1.1 计分系统分为“A队…

loading linux img2a,嵌入式Linux中initrd的应用--浅析ramdisk、ramfs、initrd和initramfs

看到这样的一句话很让我费解,因为似乎我理解为这样做能够提高一点嵌入式linux启动速度,我对此是非常地感兴趣自此,就开始了我的解惑之旅首先需要知道的是ramdisk和ramfshttp://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Intro…

android短信动态权限设置,Android动态权限申请

从HBuilderX1.9.4及以上版本开始,Android平台默认targetSdkVersion从21(Android5.0)调整为23(Android6.0)。Android动态权限申请机制Android6.0(API23)及以后,系统对权限的管理更加严格,放弃了以往manifest中注册所需权限,用户只要…

android 获取对话框对象,Android 基本Dialog和自定义Dialog

Android 基本Dialog和自定义DialogDialog类是对话框的基类,但你应该避免直接实例化Dialog ,可以使用子类1.AlertDialog 此对话框可以显示标题,最多三个按钮,可选择列表或自定义布局View.2.DatePickerDialog或TimePickerDialog 此对话框带有允…

android inset 标签,android – 有几个WindowInsets?

WindowInsets描述了一组窗口内容的插图.换句话说,WindowInsets有一个可用的应用程序区域(并有其他信息,如isRound).可用区域不包括StatusBar和NavigationBar的Rect.如果您只想知道StatusBar和NavigationBar的高度,请查看this.你可以得到如下的WindowInsets.以下示例使用WindowI…

android root截图软件下载,截屏软件(无需ROOT)

ScreenshotIt是一款功能简单而专一的小软体,利用它你能够非常方便的对你的Android手机进行捉图操作,并将截取的萤幕快照储存为图片。软体功能:-裁剪你的萤幕截图;-萤幕截图状态栏按键;-可以利用重力感应来截图(摇晃手机…

android toolbar源码解析,深入理解Android 5.0中的Toolbar

环境说明:Android Studio 2.0V7包版本:com.android.support:appcompat-v7:23.4.0compileSdkVersion 23buildToolsVersion "24.0.0"Toolbar 引入使用XML布局中加入:android:id"id/toolbar"android:layout_width"matc…

android 9图片报错,Android2.1加载9Patch图片运行后报错

今天遇到一个很无语的问题,竟然是9Patch图片上多加了光晕效果。因为需要自定义Button,所以请用了9Patch图片,而且图片上面还有一点光晕效果,同样也被拉伸了,在2.2的系统上面正常能跑,2.1上面就出问题&#…