如何查找一个目录中所有c文件的总行数
如何查找一个目录中所有c文件的行数
面试题问到了一题,如何统计wc文件夹下所有文件的行数,包括了子目录。
最后在 https://blog.csdn.net/a_ran/article/details/43939261
中找到了方法。
wc -l `find . -name *.c`
find 会递归地寻找当前目录的所有符合要求的文件, *.c是正则表达式,即以.c结束的所有文件,惰性匹配。
wc -l 统计文件的行数,如果是多个文件的话,则会有total行统计总数。
如果用find . -name *.c | wc -l结果会如何呢?
结果不是统计出所有c文件的行数以及和,而是统计出了所有c文件的数量,这是为什么呢?
因为 find . -name *.c | 用了管道之后,之前的结果实际上是被输出到了标准输出中,也就是说,改结果被作为了一个文件,文件中是所有c文件的名字
一行行地排列。
而上文的写法, wc -l 后面的是 值类型,这样就实际上统计了所有的文件并且得到行数。
接下来是将统计所有行数的那一行提取,
wc -l `find . -name *.c | grep total | awk '{print $1}'`
知识点
wc命令用于统计文件内容的行数、单词数和字母数目。
wc用于统计和计算字数,Byte数,字数,或者列数,如果不指定文件名称,或者文件名为'-',则wc指令会从标准输入设备读取数据。
wc [-lwc] filename
显示 行数,单词数 和 字节数。
wc -l 是指仅统计行数, l是line的简写
wc -w 则显示字数。
wc -c 显示字节数
wc基本就是以上的三个参数。
wc无法统计当前目录子目录下的文件行数。所以需要和其他进行组合。
首先,如何显示当前目录下包括子目录的所有的c文件?
grep能否查找文件?
grep的本意是过滤,找到的是字符串所在的行
grep一般是查找文件内部的字符串,并把符合要求的行输出。
例如 grep main test.cc
意思是找到 test.cc中有main字符串的行,并且把所有符合条件的行输出。
如果需要知道它们的行数,则加-n
grep -n main test.cc
grep的本质是过滤找行,所以它无法直接找文件名。
首先是递归获取当前目录下的所有文件,然后用grep过滤所有的c文件,然后用wc统计行数
ls -lR,获取所有的文件,R是递归
grep 筛选出所有c文件
wc -l,统计它们的行数
再把所有的行数加起来
参考 https://blog.csdn.net/mr_wangning/article/details/90923176
使用了ls -lR,-l会把文件的权限等多余信息写出来,但是是按行显示。
于是只用 ls -R *.c ./, 这样确实会把当前目录的所有的c文件筛选出,但是却不是按行输出。
如何查找一个目录中所有c文件的总行数的更多相关文章
- python从一个目录中复制全部文件图片至另一个目录中,及删除指定目录中的图片
import shutil import os #目录自己改一下即可,复制 path = "./static/imgs/" new_path = "./static/up ...
- python 之 查找某目录中最新的文件
记录一下这个方法,感觉很有用!>.< import os def find_newest_file(path_file): lists = os.listdir(path_file) li ...
- linux复制指定目录下的全部文件到另一个目录中
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- 在Windows下通过命令行或者.bat文件统计一个目录中文件数量
在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...
- python glob 用通配符查找指定目录中的文件 - 开源中国社区
python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- Android开发---如何操作资源目录中的资源文件4 ---访问xml的配置资源文件的内容
Android开发---如何操作资源目录中的资源文件4 XML,位于res/xml/,这些静态的XML文件用于保存程序的数据和结构. XmlPullParser可以用于解释xml文件 效果图: 描述: ...
- Android开发---如何操作资源目录中的资源文件3--圆角边框、背景颜色渐变效果、边框颜色
Android开发---如何操作资源目录中的资源文件3 效果图 1.圆角边框 2.背景颜色渐变效果 1.activity_main.xml 描述: 定义了一个shape资源管理按钮 <?xml ...
- Android开发 ---如何操作资源目录中的资源文件2
Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...
随机推荐
- python3 爬虫五大模块之一:爬虫调度器
Python的爬虫框架主要可以分为以下五个部分: 爬虫调度器:用于各个模块之间的通信,可以理解为爬虫的入口与核心(main函数),爬虫的执行策略在此模块进行定义: URL管理器:负责URL的管理,包括 ...
- shell脚本获取文件名、路径名、文件类型
1. 从字符串获取指定内容 从字符串中提取特定的信息,常用于获取文件名.文件类型.所在路径等. 1.1 获取字符串信息 用指定的方式(PATTERN)从字符串(PARAMETERS)中移除内容 &qu ...
- js-监听网络状态
<script> // 监听网络状态 window.addEventListener("online", function(){ alert("网络连接了&q ...
- rune和byte在处理字符/字符串中的应用.
rune和byte在处理字符/字符串中的应用. 定义: rune是int32的别名,-2147483648->2147483647,常用来表示UNICODE字符集,可以用来处理包含中文/非中文的 ...
- SQLmap的基本命令
Sqlmap sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入.目前支持的数据库有MySql.Oracle.Access.PostageSQL.SQL ...
- HDU 6170 FFF at Valentine(强联通缩点+拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 题意:给你一个无环,无重边的有向图,问你任意两点,是否存在路径使得其中一点能到达另一点 解析:强 ...
- vs code安装leetcode插件
vs code 安装不成功啊 1.首先确保有node.js 10+,没有的话去官网下载,安装就可以,安装好之后在cmd命令行中输入: node -v 若出现相关版本信息说明安装成功 2.由于leetc ...
- java中的swing设计界面时怎么加上背景图片。而不覆盖其他控件?
通过以下方式设置下背景就可以了: import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; ...
- Sql 小技巧(持续汇总)
身份证号加密 select concat(left(`visitors`.`Card_id`,3),'****',right(`visitors`.`Card_id`,4)) AS `Card_id` ...
- Mysql集群搭建(多实例、主从)
1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...