如何统计Linux中文件和文件夹目录的数量

如何统计Linux中文件和文件夹目录的数量,第1张

在本教程中,我们将向您展示如何使用多个命令,并使用 ls、egrep、wc 和 find 命令执行一些高级 *** 作。 下面的命令将可用在多个方面。 为了实验,我打算总共创建 7 个文件和 2 个文件夹(5 个常规文件和 2 个隐藏文件)。 下面的 tree 命令的输出清楚的展示了文件和文件夹列表。 # tree -a /opt/opt├──magi│ └──2g│ ├──test5.txt│ └──.test6.txt├──test1.txt├──test2.txt├──test3.txt├──.test4.txt└──test.txt 2directories,7files 示例 1 统计当前目录的文件(不包括隐藏文件)。 运行以下命令以确定当前目录中有多少个文件,并且不计算点文件(LCTT 译注:点文件即以“.” 开头的文件,它们在 Linux 默认是隐藏的)。 # ls -l . | egrep -c '^-'4 细节: ls : 列出目录内容-l : 使用长列表格式. : 列出有关文件的信息(默认为当前目录)| : 将一个程序的输出发送到另一个程序进行进一步处理的控制 *** 作符egrep : 打印符合模式的行-c : 通用输出控制'^-' : 以“-”开头的行(ls -l 列出长列表时,行首的 “-” 代表普通文件) 示例 2 统计当前目录包含隐藏文件在内的文件。 包括当前目录中的点文件。 # ls -la . | egrep -c '^-'5 示例 3 运行以下命令来计数当前目录的文件和文件夹。 它会计算所有的文件和目录。 # ls -l | wc -l5 细节: ls : 列出目录内容-l : 使用长列表格式| : 将一个程序的输出发送到另一个程序进行进一步处理的控制 *** 作符wc : 这是一个统计每个文件的换行符、单词和字节数的命令-l : 输出换行符的数量

cat file.csv | awk -F '\t' '{print $2}'

'\t'指的是file.csv不同列以'\t'分割,如果的是以其他符号分割,换成其她符号;

'{print $2}'是指取第2列,此处从1开始计数,第1列,第2列;

一般去重之前要进行排序

cat file.csv | awk -F '\t' '{print $2}' | sort | uniq

前半部分与命令1一样,后面加上| sort | uniq

比如通过命令2发现,第2列取值有两种,分别是'neg'和‘pos’,那么我想知道有多少行的第2列取值为'pos',多少行的第2列取值为'neg'。

cat file.csv | awk -F '\t' '{print $2}' | grep -o 'neg'| wc -l

前半部分与命令1一样,后面加上 | grep -o 'neg'| wc -l

grep -o 'neg'就是取出取值为'neg'的行

wc -l 是计数有多少行

使用这个命令查出文本中的单词出现频率按照由高到底排序

cat words.txt |tr -cs "[a-z][A-Z]" "[\012*]"|tr A-Z a-z|sort|uniq -c|sort -k1nr -k2|head -10

但是有时我们想查找出某一个单词的出现频率这时我们可以使用如下几个命令

文件名称:file  查找单词名称:word

*** 作命令:

(1)more file | grep -o word | wc -l

(2)cat file | grep -o word | wc -l

(3) grep -o test word | wc -l

如果这些还是不能满足需求,那只能写linux脚本进行实现了。可以使用awk哦

1.命令格式:

wc [选项]文件...

2.命令功能:

统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

3.命令参数:

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

--help 显示帮助信息

--version 显示版本信息

4.值得注意的是,-c,c应该是count的缩写,统计的是文件的字节数,而不是通常我们想要的“字数”,字数的统计应该用-w,所以上面提到那个问题,可以怎么做呢?wc并没有提供给我们统计特定一个单词的选项,只能查找呗~所以结合grep就可以这样简单写:

grep cout hello.cpp | wc -l

5.上面命令通过管道串联起来,意思是,查找hello.cpp里所有出现过cout的行,统计行数。

但是,问题来了,如果不只想统计行数,而是想精确到个数(一行里可能会出现多次),应该怎么办呢?

这就是grep的作用了2,-o选项(only的意思)表示只选中那些匹配的地方,比如a cout yes, and b cout no.,匹配cout,结果是两行,每行一个cout。所以要想统计出现次数的话,简单加一个选项就好了:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7147051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存