Shell 批量搜索关键词并保存结果到文件中(数组、循环)

2023-11-11

 

#!/bin/bash

keywords=("不需要" "不用谢谢" "xxx" "xxx")

for var in ${keywords[@]}
do
        echo $var
        cat ../corpus.txt | grep $var | wc -l        
        cat ../corpus.txt | grep $var > search_res/$var.txt
done

 

1.Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由0开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 ... valuen)

我们也可以使用下标来定义数组:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

读取数组元素值的一般格式是: ${array_name[index]} 

获取数组中的所有元素
使用@ 或 * 可以获取数组中的所有元素,例如:

echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

获取数组长度的方法与获取字符串长度的方法相同,例如:

echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

 

2.Shell 流程控制中的for 循环

与其他编程语言类似,Shell支持for循环。

for循环一般格式为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。

in列表是可选的,如果不用它,for循环使用命令行的位置参数。

例如,顺序输出当前列表中的数字:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

输出结果:

The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5

顺序输出字符串中的字符:

for str in 'This is a string'
do
    echo $str
done

输出结果:

This is a string

 

参考:

Shell 数组 | 菜鸟教程

Shell 流程控制 | 菜鸟教程

转载于:https://www.cnblogs.com/bymo/p/8945671.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell 批量搜索关键词并保存结果到文件中(数组、循环) 的相关文章

  • symfony2 选择单选框的默认值

    我的项目是使用 Silex 和 Symfony 组件 即表单组件 编写的 我尝试创建一组从类中构建的单选按钮 并且我想预先选择其中一个单选按钮 我创建这样的表格 form app form factory gt createBuilder
  • PHP 有效读取 csv 文件

    有几种使用 PHP 读取 CSV 文件的方法 我以前用过explode函数将每一行放入一个数组中 然后explode逗号并使用trim删除数据周围的任何引号 本来就很乱 PHP 5 现在有fgetcsv和 str getcsv 我猜这是这些
  • 未捕获的 ValueError:mysqli_stmt::execute():参数 #1 ($params) 必须是列表数组

    我试图通过这两个查询在我的数据库中插入准备好的语句多个值 这两个查询都发生故障 返回 未捕获的错误 调用未定义的方法 mysqli stmt bindValue 对于第一个代码或 未捕获的 ValueError mysqli stmt ex
  • 如何为 Lumen 的封闭路线指定路线名称?

    您好 我有以下流明路线 router gt get end function Illuminate Http Request request use router controller router gt app gt make App H
  • Instagram 如何使用 Amazon S3?

    在将文件上传到 Amazon S3 时 我需要深入了解 Instagram 的工程 我刚刚开始使用 S3 我认为 Instagram 是一个值得效仿的好模式 因为他们每天上传数千张图片 我的应用程序有点相似 用户上传图片 可以删除自己的图片
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • 如何在javascript中使用自动递增id?

  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

    我们在 Laravel 5 和 AngularJs Ionic 中运行此 Web 服务来处理 Web 当我们将请求从 Web 客户端 发送到 Web 服务 后端 时 我们传递了嵌套的 JSON 对象 我们在读取服务器端父对象下的所有子对象时
  • WAMP 不显示目录列表中的图标

    过去 我通过 vmware 处理 PHP 代码 但最近我决定转而通过 WAMP 在 Windows 8 1 上 在本地进行处理 我创建了一个空文件夹tests in the www folder 然后在我的浏览器上输入http localh
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • 如何在 joomla 模块中通过 javascript 发送输入文件类型

    我想将带有 javascript 的文件发送到 php 文件 我的 php 文件中有这个表单
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • WordPress 事件按元生效日期排序

    我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到一些问题 我在 Stack Overflow 和其他地方找到了几个建议的解决方案 但经过大量的试验和错误后 这些解决方案似乎都不起作用 这没什么花哨的 而且应该比这容
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本

随机推荐

  • 最详细的——C#对MySQL数据库数据的增删改查

    提示 建议将所有关于处理数据库数据的方法都封装在一个类里面 之后要相应的操作直接调用就可以了 文章目录 前言 一 创建yyl mysql类 自定义类名 二 主窗体样式 三 增 1 添加窗体 2 添加按钮绑定事件 3 运行效果 四 删 1 删
  • CSS自适应

    CSS一列的自适应
  • Fuch混沌映射

    一 Fuch混沌映射 Fuch混沌映射公式如下 该映射具有对初值不敏感 遍历均衡和收敛较快等优点 且在初值不为0的情形下均能产生混沌 二 Fuch混沌映射代码 x 1 rand for i 2 2000 x i cos 1 x i 1 2
  • Java实现符号函数功能

    Java实现符号函数功能 符号函数 Sign Function 又称为符号判断函数 是一种常见的数学函数 用于判断一个数的正负性 如果输入的数大于0 则返回1 如果输入的数等于0 则返回0 如果输入的数小于0 则返回 1 在Java中 我们
  • 大数据~几个入选的技术框架对比

    技术 特点 使用场景 对比 备注 Maxwell 轻量级数据同步中间件 支持刷全量 断点还原 随机读数据 固定JSON数据格式 mysql数据全量 增量同步 Canal 数据落地需要定制开发 不支持刷全量 虽然高版本有了adapter客户端
  • 华为swot分析2020_2020年全球与中国人工智能与分析系统行业现状及未来5年市场预测分析报告...

    本文研究全球及中国市场人工智能与分析系统现状及未来发展趋势 侧重分析全球及中国市场的主要企业 同时对比北美 欧洲 日本 中国 东南亚 印度等地区的现状及未来发展趋势 2019年全球人工智能与分析系统市场规模达到了xx亿元 预计2026年将达
  • springboot添加验证码功能

    开源验证码 1 Happy Captcha 提供了图片和动画两种展现形式 验证码内容包括中文 数字 09 中文数字 零至九 中文大写数字 零至玖 数字与字母混合 09 az AZ 数字与小写字母混合 09 az 数字与大写字母混合 09 A
  • Clang 中 AST 相关类简介(不定时更新)

    Clang 中 AST 相关类简介 不定时更新 1 Decl declaration 1 1 FunctionDecl 2 Stmt statement 3 Expr expression 3 1 FullExpr 3 2 ExprWith
  • 【Grub2】BIOS添加Grub2引导(Windows下操作)

    电脑上安装的系统是Windows10 BIOS MBR 想利用Grub2安装CentOS 和RemixOS三个操作系统 为了实现硬盘安装CentOS 需要用到Grub2 第一步 Grub2下载 文件准备到Grub2官网ftp ftp gnu
  • C语言库函数— qsort () 详解

    目录 1 qsort 函数简介 1 1 函数原型 1 2 函数参数 2 比较函数简介 2 1 比较函数参数 2 2 比较函数使用 3 qsort 函数使用 3 1 整形数组排序 3 2 字符数组排序 3 3 浮点型数组排序 double类型
  • 降压式变换电路(Buck电路)详解

    降压式变换电路 Buck电路 详解 一 BUCK电路基本结构 开关导通时等效电路 开关关断时等效电路 二 等效的电路模型及基本规律 1 从电路可以看出 电感L和电容C组成低通滤波器 此滤 波器设计 的原则是使 us t 的直流分量可以通过
  • 计算机英语第三版司爱华,論计算机英语的特征.doc

    論计算机英语的特征 毕业设计 论文 题目 论计算机英语的特征 形式 层次 专科 专业 经贸英语 班号 学号 学生姓名 指导教师 年 月 日 摘 要 计算机英语是英语的一个分支 属于专业英语的范畴 所以有其自己的特征本文主要从计算机英语的词汇
  • 第2天:基础入门-数据包拓展

    前言 如有不妥之处 还望指正 目录 前言 1 网站解析对应 2 HTTP HTTPS数据包 2 1 HTTP 与 HTTPS 区别 2 2 HTTP简要通信过程 2 3 HTTPS简要通信过程 2 4 Request请求数据包数据格式 2
  • AI真的快让我失业了

    以下文章来源于深燃 作者深燃团队 编辑 深燃 聚焦创新经济 专注深度内容 来源 深燃 ID shenrancaijing 作者 邹帅 李秋涵 王敏 唐亚华 王璐 编辑 李秋涵 本文已获授权 跟AI有关的新闻 一个接着一个 前一天你还和往常一
  • 光纤收发器的六个指示灯代表是什么意思?

    对光纤收发器这块了解的朋友应该知道 光纤收发器有6个LED指示灯 它们分别显示了收发器的工作状态 根据LED所示 我们就能判断出收发器是否工作正常和可能有什么问题 从而能帮助找出故障 那么 光纤收发器的六个指示灯分别代表什么意思 有哪些作用
  • 刷题_day2:双指针法

    题目介绍 给你一个数组 nums 和一个值 val 你需要 原地 移除所有数值等于 val 的元素 并返回移除后数组的新长度 可以使用暴力解法 嵌套两个for循环 但是时间复杂度为O n2 双指针法 快慢指针 可以利用两个指针 在一次for
  • Spring Boot自动装配原理(易懂)

    Spring Boot的自动装配原理 易懂 熟练使用Spring Boot那么自动装配原理的掌握是必不可少的 文章目录 Spring Boot的自动装配原理 易懂 一 自动装配是什么 二 启动类注解流程关系分析 1 首先展示 SpringB
  • R语言中如何给向量改变赋值

    R语言中如何给向量改变赋值 一 创建向量 二 访问向量特定位置 三 改变向量特定位置赋值 结果 一 创建向量 a lt c rep 冬季盛宴 5 rep 盛宴 6 二 访问向量特定位置 代码如下 示例 在这里插入代码片 a 4 三 改变向量
  • ln: 创建符号链接 "/usr/bin/java": 文件已存在

    执行下述命令创建软链接 ln s JAVA HOME bin java usr bin java 出现下述错误提示 ln 创建符号链接 usr bin java 文件已存在 这种情况可以通过命令ll检查下 usr bin java现有的软链
  • Shell 批量搜索关键词并保存结果到文件中(数组、循环)

    bin bash keywords 不需要 不用谢谢 xxx xxx for var in keywords do echo var cat corpus txt grep var wc l cat corpus txt grep var