首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不使用任何外部编程语言(awk等)的情况下打印bash中最常出现的单词?)

在不使用任何外部编程语言的情况下,可以使用纯bash脚本来实现打印bash中最常出现的单词。下面是一个实现的示例代码:

代码语言:txt
复制
#!/bin/bash

# 读取输入的文本
read -p "请输入文本: " text

# 将文本转换为小写并去除标点符号
text=$(echo "$text" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-zA-Z ]//g')

# 将文本按空格分割为单词数组
words=($text)

# 统计每个单词出现的次数
declare -A wordCount
for word in "${words[@]}"; do
  ((wordCount[$word]++))
done

# 找出出现次数最多的单词
maxCount=0
for count in "${wordCount[@]}"; do
  if ((count > maxCount)); then
    maxCount=$count
  fi
done

# 打印出现次数最多的单词
for word in "${!wordCount[@]}"; do
  if ((wordCount[$word] == maxCount)); then
    echo "出现次数最多的单词是: $word"
  fi
done

这段代码首先读取用户输入的文本,然后将文本转换为小写并去除标点符号。接着,将文本按空格分割为单词数组,并使用关联数组wordCount统计每个单词出现的次数。然后,找出出现次数最多的单词,并打印出来。

这个问题中没有提到具体的云计算相关内容,因此无法给出相关的腾讯云产品和产品介绍链接地址。如果有其他问题需要解答,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux中最为常用三大文本(grep,sed,awk)处理工具

d :删除,因为是删除啊,所以 d 后面通常任何咚咚; i :插入, i 后面可以接字串,而这些字串会在新一行出现(目前上一行); p :打印,亦即将某个选择数据印出。...格式: /pattern/command 二.awk awk 这里是最常几个操作例子: 三.grep 功能:模式匹配语言 参考:《awk工作原理》 awk是一种编程语言,用于在*nix下对文本和数据进行处理...; 数据可以来自标准输入(stdin)、一个或多个文件,或其它命令输出; 它支持用户自定义函数和动态正则表达式先进功能,是*nix下一个强大编程工具; 它可以在命令行中使用,但更多是作为脚本来使用...; awk有很多内建功能,比如数组、函数,这是它和C语言相同之处; 灵活性是awk一大优势。...-n :显示行号   -w :被匹配文本只能是单词,而不能是单词某一部分,文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker   -c :显示总共有多少行被匹配到了

6K10

学校早这么教正则表达式,少走多少弯路!那个分组用法震到我了

在本文中,我们将探索如何在grepGNU版本中使用正则表达式基础知识,该版本在大多数Linux操作系统默认可用。 ? grep正则表达式 正则表达式(regex)是与一组字符串匹配模式。...因此,如果你要搜索“gnu”,grep还会打印“gnu”嵌入较大单词行,例如“cygnus”或“magum”。...以下模式将匹配以“co”开头、后跟除“l”和“la”之外任何字母任意字符串组合,“coca”、“cobalt”,但不匹配包含“cola”行: grep 'co[^l]a' file.txt 你可以在方括号内指定一个字符范围...下表展示了一些最常特殊反斜杠表达式: \b 匹配单词边界。 \< 匹配单词开头空字符串。 \> 匹配单词末尾空字符串。 \w 匹配一个单词。 \s 匹配空格。...如果嵌入到较大单词,它将与单词匹配: grep '\b[ao]bject\b' file.txt 写在最后 正则表达式用于文本编辑器、编程语言和命令行工具,grep、sed和awk

2.4K30
  • Linux三剑客之grep,awk,sed命令必知必会

    Grep是用于快速搜索匹配模式简单工具,但是awk更像是一种编程语言,用于处理文件并根据输入值生成输出。 sed命令对修改文件最有用,它搜索匹配模式并替换它们并输出结果。...grep "linuxmi" test test1 test2 匹配文件整个单词。 默认情况下,即使在子字符串中找到了Grep,也会输出所有出现某种特定模式。...在这种情况下,我们将输出包含单词“linuxmi”其他任何内容。...AWK命令 Awk命令更多是用于处理数据和生成报告脚本语言。...当使用' awk '时,我们将花括号括起来。 模式和动作都形成规则,整个awk程序都用单引号引起来。 如何在Linux中使用AWK命令 默认情况下Awk命令用于打印文件内容。

    9.2K20

    通过两个简单教程来提高你 awk 技能

    也许最常 awk 程序是打印 CSV 文件、日志文件输入行选定字段。...模板文件被逐行读取,并使用函数 sub 将任何出现特殊字符序列替换为相关变量值。然后将该行以及所做任何替换输出到输出文件。...awk 进阶:字频计数 awk 中最强大功能之一是关联数组,在大多数编程语言中,数组条目通常由数字索引,但在 awk ,数组由一个键字符串进行引用。...一个使用了这个概念简单程序就是词频计数器。你可以解析一个文件,在每一行中分解出单词(忽略标点符号),对行每个单词进行递增计数器,然后输出文本中出现前 20 个单词。...,然后利用 awk 能力,将输出内容用管道输入 shell 命令,进行数字排序,并打印出 20 个最常出现单词

    1.5K20

    精简运维流程:grep、awk、sed三剑客实用脚本

    近日见闻 TIOBE 宣布 2023 年度编程语言花落 C#,这是 C# 在 TIOBE 指数历史上首次荣获年度编程语言奖项。...-i:忽略大小写 -v:反转匹配,只显示匹配行 -c:计数匹配行数 -n:显示匹配行号 -r:递归搜索目录所有文件 -E:使用扩展正则表达式 常用示例: 查找文件包含"error"行(区分大小写...&:在替换字符串引用匹配部分。 -n 与 p 结合使用:仅打印那些发生替换行。 自动化脚本案例: #!.../bin/bash # 提取日志文件IP地址,并统计每个IP出现次数,输出最常10个IP grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log...、sed工具来快速解决日常任务,日志分析、系统监控、自动化部署

    27410

    linux实战(一)

    文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件反复操作;编写转换程序。...d :删除,因为是删除啊,所以 d 后面通常任何咚咚; i :插入, i 后面可以接字串,而这些字串会在新一行出现(目前上一行); p :列印,亦即将某个选择数据印出。...实际上 AWK 的确拥有自己语言AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。...input-file(s) 是待处理文件。 在awk,文件每一行,由域分隔符分开每一项称为一个域。通常,在指名-F域分隔符情况下,默认域分隔符是空格。...commands awk命令非常多,因为它甚至可以算是一个编程语言。我们这里就不详细讲述了。后面的实例学习中会了解到一部分常用命令。

    2.2K10

    linux学习第二十六篇:正则介绍,grep,sed,awk命令

    正则介绍 正则就是一串有规律字符串,掌握好正则对于编写shell脚本有很大帮助,各种编程语言中都有正则,原理是一样。...把test.txt第一个单词和最后一个单词调换位置 ? 11. 把test.txt中出现第一个数字和最后一个单词替换位置 ? 12....… 匹配括号内出现任意一个字符 一般出现在要shell命令或脚本,匹配特定文件名 正则表达式 它是一个字符匹配标准,一些命令工具按此标准实现字符匹配,根据命令支持匹配功能可分为基础正则表达式和扩展正则表达式...把两个文件中行数相同行合并成一行 paste filename1 filename2 ? awk使用外部shell变量 说明:-v选项用于定义参数。...awk 合并一个文件 把两个文件,第一列相同行合并到同一行。 解释:NR表示读取行数,FNR表示读取的当前行数。

    4K60

    统计文件中出现单词次数

    该操作块是在文件输入之前执行,也就是不需要输入任何文件数据,也能执行该模块。 BEGIN模块常用于设置修改内置变量(OFS,RS,FS),为用户自定义变量赋初始值或者打印标题信息。...2)END模块:与BEGIN模块相反,是处理完文件后操作。匹配任何输入行,常用于输出一些总结信息。...利用管道组成一条命令) 写一个shell脚本,查找kevin.txt文本n个出现频率最高单词,输出结果需要显示单词出现次数,并按照次数从大到小排序。...分为以下几步: 1)将文本文件以一行一个单词形式显示出来; 2)将单词大写字母转化成小写字母,即Word和word认为一个单词; 3)对单词进行排序; 4)对排序好单词列表统计每个单词出现次数.../bin/bash #查找文本n个出现频率最高单词 count=$1 #$1是输出频率最高单词个数 cat $2 |

    3.8K111

    文本三剑客

    vi, grep,awk, sed ##字符匹配 ....扩展正则支持所有基础正则; 并有补充 扩展正则{}和[]不用转义可以直接使用; 符号 描述 + 表示前面的字符至少出现1次情况 \ 表示“或” ?...d :删除,因为是删除啊,所以 d 后面通常任何东西; i :插入, i后面可以接字串,而这些字串会在新一行出现(目前上一行); p :打印,亦即将某个选择数据印出。...awk语言最基本功能是在文件或者字符串基于指定规则浏览和抽取信息,awk抽取信息后,才能进 行其他文本操作。完整awk脚本通常用来格式化文本文件信息。...,数字索引也会转变为字符串索引 在awk,数组叫关联数组,与我们在其它编程语言数组有很大区别。

    2.4K10

    shell 学习笔记(17)

    使用过 disown 之后,会将把目标作业从作业列表移除, 我们将不能再使用jobs来查看它,但是依然能够用ps -ef查找到它。...:p 1668.输出特定长度随机数字: awk 'BEGIN{srand();a=rand()*100000000;printf("%08d\n",a)}' 1669.语言字符环境设置...该结果与终端编码有关,类似 urlencode、urldecode 1672.awk --source进行外部函数调用: seq 10|awk -f func_awk -W source '{...2 *f"|sed 's/\B/ /g' #单词边界 1677.理解正则单词边界与非单词边界”: aba 单词边界为:\ba\Bb\Ba\b \b 为单词边界.../regexp/I 和 \%regexp%I : GNU扩展,忽略大小写. 4. 0,/regexp/ : 这是唯一一个使用0作为行号不会报错用法,一般情况下不存在”第0行”,在任何其他命令中使用

    1.1K80

    linux运维命令梳理(三)

    d ∶删除,因为是删除啊,所以 d 后面通常任何咚咚; i ∶插入, i 后面可以接字串,而这些字串会在新一行出现(目前上一行); p ∶列印,亦即将某个选择资料印出...awk语言最基本功能是在文件或者字符串基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整awk脚本通常用来格式化文本文件信息。 通常,awk是以文件一行为处理单位。...input-file(s) 是待处理文件。 在awk,文件每一行,由域分隔符分开每一项称为一个域。通常,在指名-F域分隔符情况下,默认域分隔符是空格。...awk编程 变量和赋值 除了awk内置变量,awk还可以自定义变量。...就是没有任何选项时候,tr默认为替换操作,就是将string1在文件中出现字符替换为string2字符,这里要注意是替换关系。

    8K81

    Awk学习笔记

    它支持用户自定义函数和动态正则表达式先进功能,是linux/unix下一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。...$ awk '{print NR,$0}' test将输出test文件中所有记录,并在记录前显示记录号。 6.2. 域 记录每个单词称做“域”,默认情况下以空格或tab分隔。...在awk脚本,这些变量使用起来就象是在脚本建立一样。注意,如果参数前面出现test,那么在BEGIN语句中变量就不能被使用。...BEGIN模块 BEGIN模块后紧跟着动作块,这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入情况下进行测试。它通常用来改变内建变量值,OFS,RS和FS,以及打印标题。...$ awk 'BEGIN{print "TITLE TEST"}只打印标题。 14.3. END模块 END匹配任何输入文件,但是执行动作块所有动作,它在整个输入文件处理完成后被执行。

    2.4K30

    搞定Linux Shell文本处理工具,看完这篇集锦就够了

    Linux Shell是一种基本功,由于怪异语法加之较差可读性,通常被Python脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本过程,还是能了解到很多Linux系统内容。...下面我介绍Linux下使用Shell处理文本时最常工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供例子和参数都是最常用和最为实用.../linux/' #包含linux文本行 设置定界符 使用-F来设置定界符(默认为空格) awk -F: '{print $NF}' /etc/passwd 读取命令输出 使用getline,将外部...对输出进行格式化 eg: seq 10 | awk '{printf "->%4s\n", $1}' 12、迭代文件行、单词和字符 1....;do echo $line;done) awk法: cat file.txt| awk '{print}' 2.迭代一行每一个单词 for word in $line;do echo $word;

    6.4K41

    Linux常用命令03 - grep

    例如,要打印包含字符串 nologin 行,可以使用: grep -v nologin /etc/passwd root:x:0:0:root:/root:/bin/bash colord:x:124...默认情况下,grep 将模式解释为基本正则表达式,其中除元字符外所有字符实际上都是匹配自身正则表达式。 下面是最常元字符列表: 使用 ^ (插入符号)符号来匹配行开头表达式。...在下面的示例,只有当字符串 kangaroo 出现在行末尾时,它才会匹配。 grep "kangaroo$" file.txt 使用。 (句号)符号来匹配任何单个字符。...下面的模式将匹配包含 co (除了 l 以外任何字母) a 任何字符串组合,可可、钴,但不匹配包含可乐线, grep "co[^l]a" file.txt 若要转义下一个字符特殊含义,请使用...默认情况下,grep 将模式解释为一个基本正则表达式,其中 | 元字符失去了它们特殊含义,必须使用它们反斜线版本。

    2K20

    Linux命令(36)——awk命令

    它支持用户自定义函数和动态正则表达式先进功能,是linux/unix下一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。...awk有很多内建功能,比如数组、函数,这是它和C语言相同之处,灵活性是awk最大优势。简单来说awk就是把文件逐行读入,以空格为默认分隔符将每行切片,切开部分再进行各种分析处理。...,-W usage,--help,--usage:打印全部awk选项和每个选项简短说明; -W lint[=value],--lint[=value]:打印有关在其它版本awk出现可疑或不可移植结构警告...input-file(s) 是待处理文件。 在awk,文件每一行,由域分隔符分开每一项称为一个域。通常,在指名-F域分隔符情况下,默认域分隔符是空格。...awk程序所使用文本所处地域 6.awk编程示例 6.1基础打印输出 (1)假设last -n 5输出如下: [root@www ~]# last -n 5 <==仅取出前五行 root

    2.3K20

    史上最全 Linux Shell 文本处理工具集锦,快收藏!

    、tr、cut、paste、wc、sed、awk; 提供例子和参数都是最常用和最为实用; 对shell脚本使用原则是命令单行书写,尽量不要超过2行; 如果有更为复杂任务需求,还是考虑python...语句块; print 打印当前行 使用不带参数print时,会打印当前行; echo -e "line1 line2" | awk 'BEGIN{print "start"} {print } END.../linux/' #包含linux文本行 设置定界符 使用-F来设置定界符(默认为空格) awk -F: '{print $NF}' /etc/passwd 读取命令输出 使用getline,将外部...: seq 10 | awk '{printf "->%4s ", $1}' 迭代文件行、单词和字符 1....line;do echo $line;done) awk法: cat file.txt| awk '{print}' 2.迭代一行每一个单词 for word in $line;do echo $

    4K50

    Grep(Regex)正则表达式

    在本文中,我们将探讨在grepGNU版本如何使用正则表达式基础,大多数Linux操作系统默认情况下都提供此功能。 Grep正则表达式 正则表达式或正则表达式是与一组字符串匹配模式。.../bash 在此示例,字符串“ bash”是由四个文字字符组成基本正则表达式。...以下模式将匹配以“ co”开头字符串任意组合,后接除“ l”之后为“ la”任何字母(例如“ coca”,“ cobalt”),但不匹配包含“ cola”行 ”: $grep 'co[^l]a...下表显示了一些最常特殊反斜杠表达式: Expression Description \b 单词锁定符 \< 在单词开头匹配一个空字符串。 \> 在单词末尾匹配一个空字符串。 \w 匹配一个单词。...如果嵌入较大单词,则不会匹配这些单词: $grep '\b[ao]bject\b' file.txt 总结 正则表达式用于文本编辑器,编程语言和命令行工具,例如grep,sed和awk

    2.8K40

    Linux Shell 文本处理工具集锦

    本文将介绍Linux下使用Shell处理文本时最常工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供例子和参数都是最常用和最为实用;...-n 打印匹配行号 -i 搜索时忽略大小写 -l 只打印文件名 在多级目录对文本递归搜索(程序员搜代码最爱): grep "class" ..../linux/' #包含linux文本行 设置定界符 使用-F来设置定界符(默认为空格) awk -F: '{print $NF}' /etc/passwd 读取命令输出 使用getline,将外部...eg: seq 10 | awk '{printf "->%4s\n", $1}' 迭代文件行、单词和字符 迭代文件每一行 while 循环法 while read line; do echo...| awk '{print}' 2.迭代一行每一个单词 for word in $line;do echo $word;done 迭代每一个字符 ${string:start_pos:num_of_chars

    3.3K70

    Linux文本处理工具,看这篇就够了。

    、tr、cut、paste、wc、sed、awk; 提供例子和参数都是最常用和最为实用; 对shell脚本使用原则是命令单行书写,尽量不要超过2行; 如果有更为复杂任务需求,还是考虑python...语句块; print 打印当前行 使用不带参数print时,会打印当前行; echo -e "line1 line2" | awk 'BEGIN{print "start"} {print } END.../linux/' #包含linux文本行 设置定界符 使用-F来设置定界符(默认为空格) awk -F: '{print $NF}' /etc/passwd 读取命令输出 使用getline,将外部...: seq 10 | awk '{printf "->%4s ", $1}' 迭代文件行、单词和字符 1....line;do echo $line;done) awk法: cat file.txt| awk '{print}' 2.迭代一行每一个单词 for word in $line;do echo $

    4.5K10
    领券