• 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 > 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 流程控制 | 菜鸟教程

  • 相关阅读:
    pch文件
    Info.plist常见的设置
    通知机制
    UITextField
    通过代码自定义cell(cell的高度不一致)
    Cell的重用原理
    UITableViewCell的contentView
    2019备考[嵌入式系统设计师]之“接口技术(上)”
    shell输入输出重定向问题
    [无私分享]最新网盘资源搜索站点
  • 原文地址:https://www.cnblogs.com/bymo/p/8945671.html
Copyright © 2020-2023  润新知