当前位置:首页 » 操作系统 » linux出现次数

linux出现次数

发布时间: 2025-07-23 10:36:04

linux命令 统计文件中数据出现次数

文件:
[root@hunt1574 dlog]# cat a2ps.txt
# Something like `#{lp.hook} lp #{lp.options} -d'
# or `#{lp.hook} lpr #{lp.options} -P'.
[root@hunt1574 dlog]# grep -Eo '\<lp\>' a2ps.txt | wc -l
9
单纯的grep 是针对行处理的,看下面的例子就明白了:
[root@hunt1574 dlog]# grep lp a2ps.txt
# Something like `#{lp.hook} lp #{lp.options} -d'
# or `#{lp.hook} lpr #{lp.options} -P'.
Variable: lp #{lp.hook} lp #{lp.options} -d
[root@hunt1574 dlog]# grep lp a2ps.txt | wc -l
3

文件夹
[root@hunt1574 bin]# ls -l result*
-rw-r--r-- 1 root root 16512 Aug 3 16:55 result.log
-rw-r--r-- 1 root root 500 Aug 3 16:55 result.txt
[root@hunt1574 bin]# ls -l | grep -v ^d | grep -c result
2

② 在Linux的命令行中实现字符出现频率统计的方法

在Linux的命令行中实现字符出现频率统计,可以通过以下方法进行:

1. 统计单词出现频率

  • 使用wc命令可以计算文件中的字数,但为得到具体单词的频率,需要结合其他命令。
  • 示例脚本:cat man.txt | tr ' ' ' ' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head。
    • cat man.txt:读取文件内容。
    • tr ' ' ' ':将空格替换为换行符,使每个单词独占一行。
    • tr '[:upper:]' '[:lower:]':将所有大写字母转换为小写,以统一统计。
    • tr -d '[:punct:]':删除标点符号。
    • grep -v '[^a-z]':过滤掉非字母字符。
    • sort:排序。
    • uniq -c:统计相同单词的出现次数。
    • sort -rn:按出现次数降序排序。
    • head:显示前N个结果。

2. 统计单个字符出现频率

  • 示例脚本:fold -w1 man.txt | sort | uniq -c | sort -rn | head。
    • fold -w1 man.txt:将文件内容按列折叠,每列一个字符。
    • sort、uniq -c、sort -rn、head:同上,用于统计和排序字符频率。

3. 区分大小写统计字符频率

  • 示例脚本:fold -w1 man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20。
    • 在统计前,使用tr '[:lower:]' '[:upper:]'将所有字符转换为大写。

4. 去除标点符号后统计字符频率

  • 示例脚本:fold -w1 man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20。
    • 在转换为大写后,使用tr -d '[:punct:]'删除标点符号。

5. 统计多个文件中字符频率

  • 示例脚本:cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8。
    • 使用cat *.txt读取多个文件内容。
    • 后续步骤同上,用于统计字符频率。

6. 生成罕见的长单词列表

  • 示例脚本:cat man.txt | tr ' ' ' ' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '.{10,}' | head。
    • 使用grep -E '.{10,}'匹配长度至少为10的单词。
    • sort -n:按出现次数升序排序。

以上方法展示了在Linux命令行中如何灵活地结合多个命令来实现复杂的文本处理任务,如统计字符和单词的出现频率。

③ Linux正则表达式教程:Grep Regex示例

正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。

为了便于理解,让我们逐一学习不同类型的正则表达式。

[TOC]

一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。

我们来看一个例子吧。

执行cat示例以查看现有文件的内容

搜索包含字母'a'的内容。

' ^ '匹配字符串的开头。让我们搜索一下STARTS的内容

仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。

让我们看看另一个例子 -

仅选择那些以 $ 结尾的行

这些表达式告诉我们字符串中字符的出现次数。他们是

例:

过滤掉包含字符'p'的所有行

我们想要检查字符'p'是否在字符串中依次出现2次。为此,语法将是:

注意:您需要使用这些正则表达式添加-E。

这些正则表达式包含多个表达式的组合。他们之中有一些是:

例:

搜索所有字符't'

假设我们要过滤字符'a'在字符't'之前的行

我们可以使用命令

大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。

一些例子:

在上面的示例中,echo命令使用大括号扩展创建字符串。

热点内容
压缩版面格式 发布:2025-07-23 18:14:41 浏览:185
轰炸博客源码 发布:2025-07-23 18:10:41 浏览:633
java解答 发布:2025-07-23 18:10:01 浏览:578
android图片裁剪上传图片 发布:2025-07-23 18:09:11 浏览:241
r解压文件 发布:2025-07-23 18:01:01 浏览:504
安溪哪里有卖礼金密码箱 发布:2025-07-23 17:32:36 浏览:529
同等配置蓝鸟同轩逸哪个好 发布:2025-07-23 17:31:27 浏览:546
云服务器图片加载速度慢 发布:2025-07-23 17:08:16 浏览:171
网址导航源码带后台 发布:2025-07-23 17:01:40 浏览:599
石粉过磅算法 发布:2025-07-23 16:53:05 浏览:78