shell中正则表达式的使用

2023-05-16

下面介绍shell中正则表达式的两种使用方法。

使用方法一:

#赋值给变量var
read var
#定义regex正则表达式
regex="[0-9]"

if [[ $var =~ $regex]];then
    #match
    #do something
fi

例如,对输入的内容进行匹配,要求必须是0-9之间的数字:

#读取输入
read input

regex="[0-9]"

if [[ $input =~ $regex ]];then
    echo "match"
else
    echo "dismatch"
fi

对于方法一,如果正则表达式中含有类似“\d”等转义字符时,是无法匹配。这样就要用到第二种方法了。

使用方法二:

read var
regex="[a-z]"

if [ `echo $var | grep -P $regex` ];then
    echo "match"
else
    echo "dismatch"
fi

注意:
-P参数:
使用Perl的正则表达式解析。

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

shell中正则表达式的使用 的相关文章

  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • 有没有办法改变vim的默认模式

    有谁知道如何更改vim的默认模式 它的默认模式是命令模式 但是我可以将其更改为插入模式吗 只需将以下行添加到您的 vimrc 中 start Vim s default mode will be changed to Insert mode
  • 使用 BHO 扩展 Windows 资源管理器

    我正在尝试使用 C 中的自定义面板来扩展 Windows 资源管理器 不是谎言 它应该如下所示 这是我发现的一个类似的问题 在 C 中 类似问题 https stackoverflow com questions 22101829 ishe
  • 我收到错误“array.sh:3:array.sh:语法错误:”(“意外”

    我编写了以下代码 bin bash Simple array array 1 2 3 4 5 echo array 我收到错误 array sh 3 array sh 语法错误 意外 根据我从 Google 了解到的情况 这可能是因为 Ub
  • “设置:非法选项 -”在一台主机上,但在另一台主机上则不然

    我在我的一台 ubuntu 虚拟机中编写了一个 sh 脚本 该脚本工作正常 但是当我尝试在其他虚拟机中运行它时 它不起作用 两个虚拟机应该相同 和bash version两个虚拟机均回复 GNU bash version 4 3 11 1
  • 如何在 Linux/Unix 上根据文件类型添加文件扩展名?

    这是一个关于 Unix shell 脚本 任何 shell 的问题 但任何其他 标准 脚本语言解决方案也将受到赞赏 我有一个充满文件的目录 其中文件名是这样的哈希值 fd73d0cf8ee68073dce270cf7e770b97 fec8
  • 在 unix bash 脚本中可以嵌套 Here Document 吗?

    是否可以在另一个heredoc中编写一个heredoc ssh T q yxz server1 lt lt END TEXT ssh T q abc server2 lt lt SUB TEXT SUB TEXT END TEXT Yes
  • 如何在shell脚本中读取单个字符

    我想要类似的选项getche 如何从命令行读取单个字符输入 Using read命令我们可以做到吗 在巴什中 read可以做到 read n1 ans
  • shell 脚本中的 Telnet

    如何在 shell 脚本中运行 telnet 并在远程服务器上执行命令 出于安全原因 我没有在我的Solaris 机器上安装expect 我也没有perlnet telnet模块已安装 那么如果不使用expect和perl我该怎么办呢 我尝
  • “bash -c 命令参数”末尾的参数的目的是什么?

    From man bash If the c option is present then commands are read from the first non option argument command string If the
  • Linux find 命令权限被拒绝

    我想过滤掉不必要的信息 权限被拒绝 这些是命令 的输出find type f name sources list find run lxcfs Permission denied find run sudo Permission denie
  • 如何 grep 文件中不区分大小写的字符串?

    我有一个文件file1其结尾为Success OR success 我想要grep为了这个词success以一种不区分大小写的方式 我写了以下命令 但它区分大小写 cat file1 grep success 我怎样才能改变它 以便它ret
  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 在Java中执行.lnk文件

    我需要在java中执行 lnk文件 指向exe文件的lnk文件 我能怎么做 在 VB net 中我做 Process Start path 它有效 谢谢你的帮助 Use a 流程构建器 http download oracle com ja
  • 退出代码大于 255 — 可能吗?

    如果是 在哪个操作系统 shell 或其他操作系统上 考虑以下 Java 程序 我使用 Java 只是作为示例 任何语言都适合这个问题 这更多地与操作系统有关 public class ExitCode public static void
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li

随机推荐

  • C语言数组带下标赋值

    好记性不如烂笔头 c语言数组带下标赋值 xff0c 初始化的时候数组元素的值不受顺序影响 xff0c 在有些时候方便扩展一幕了然 span class token keyword int span array span class toke
  • Linux 2.4 Packet Filtering HOWTO

    Linux 2 4 Packet Filtering HOWTO 简体中文版 Rusty Russell mailing list netfilter 64 lists samba org Revision 1 3 Date 2002 06
  • lammps案例:Cu三点弯曲模拟

    大家好 xff0c 我是小马老师 本文分享一个Cu弯曲的案例 本案例参考三点弯曲实验 xff0c 三点弯曲试验是将试样放在弯曲装置上 xff0c 在试样上加载进行弯曲试验 xff0c 直到达到规定的弯曲程度或发生断裂 模拟原理是在z方向固定
  • PHP 中的数组函数

    文章目录 array change key casearray chunkarray columnarray combinearray count valuesarray diffarray diff keyarray diff assoc
  • Linux下运行bash脚本显示/usr/bin/env bash\r没有那个文件或目录

    Linux下运行bash脚本显示 usr bin env bash r 没有那个文件或目录 错误原因 这主要是因为bash后面多了 r这个字符的原因 在linux终端下 xff0c 输出 r会什么都不显示 xff0c 只是把光标移到行首 于
  • ROS软路由设置

    ROS软路由设置 不要怀疑软路由的性能 xff0c 也不用担心所谓的耗电多少 所谓的软路由耗电大 xff0c 只不过是商家搞的噱头而已 软路由完全不需要显示器 键盘鼠标 甚至 xff0c 可以在BIOS 里设置系统启动完即关闭硬盘 至于主板
  • QT +go 开发 GUI程序(一)

    如果你是一个墨守成规的coding xff0c 请移步其他内容 xff0c 这部分内容可能不适合你 如果你希望到外面看看 xff0c 感受新鲜的技术以及自由自在的氛围 xff0c 请继续 当然你也要付出一定的精力去学习如何科学上网 xff0
  • Android 7.0系统权限问题

    Android 7 0系统在运行应用的时候 对权限做了诸多限制 normal dangerous signature signatureOrSystem 取决于保护级别 xff0c 在确定是否授予权限时 xff0c 系统可能采取不同的操作
  • 跨平台,开源,免费的单片机IDE开发环境搭建-SDCC+eclipse

    关于如何使用sdcc编译器 xff0c 参见 单片机开发 xff0c 推荐开源跨平台的SDCC编译器 xff0c 其中较为详细叙述了使用方法和执行效率 1 xff0c IDE基本环境 SDCC在eclipse有一个插件 xff0c 版本1
  • LINUX中添加用户时为用户设置了全名(FULL NAME)

    more etc passwd 每行第4个冒号后面的字母就是full name
  • 系统开发系列 之Java中打印日志的几种方式

    在Java 中实现记录日志的方式有很多种 xff1a 最简单的方式 xff0c 就是system println out error 这样直接在控制台打印消息了 Java util logging 在JDK 1 4 版本之后 xff0c 提
  • 如何获取Android设备唯一识别码

    来自 xff1a http syawlaus com remindme E5 A6 82 E4 BD 95 E8 8E B7 E5 8F 96android E8 AE BE E5 A4 87 E5 94 AF E4 B8 80 E8 AF
  • 对时间操作

    TextBox1 Text 61 DateTime Today ToString 34 yyyy年M月d日 34 点第一个BUTTON时 TextBox1 Text 61 DateTime Today AddDays 1 ToString
  • docker访问samba服务器做持久化

    需求 xff1a 在window上 xff0c 我们经常使用 192 168 24x 1xx xxx 这样的路径访问网络共享文件服务器 xff0c 测试人员将访该文件服务器做持久化给到类似rancher这样的k8s管理平台上的docker操
  • 数据库迁移思路梳理

    1 分析系统 xff1a 进一步分析系统的功能和需求确认 业务需求分析 应用分析 评估工作量 2 制定方案 xff1a 确定迁移的重点和难点 xff0c 制定迁移方案 2 1确定数据库结构 xff1a 明确数据表 表中字段和各字段的数据类型
  • Maven 国内镜像仓库

    镜像仓库目标 当我们未定义任何远程仓库时 xff0c 使用 Maven 更新依赖时 xff0c 其会去默认远程仓库中拉取 xff0c 默认远程仓库 是国外地址 xff0c 所以在国内访问特别慢 xff0c 想提升访问速度 xff0c 需要将
  • 命名难,难于上青天

    Photo by Jorik Kleen on Unsplash Quora 问答社区的一个开发者投票统计 xff0c 程序员最大的难题是 xff1a 如何命名 xff08 例如 xff1a 给变量 xff0c 类 xff0c 函数等等 x
  • 企业发放的奖金根据利润提成

    案例 xff1a 利润I低于或等于10万元时 xff0c 奖金可提10 xff05 xff1b 利润高于10万元 xff0c 低于20万元 xff08 10000 lt I 200000 xff09 时 xff0c 其中10万元按10 xf
  • Python3的序列——3、字典(dict)的详细讲解

    一 字典的定义 xff1a 1 字典 xff08 dict xff09 是一种可变的容器模型 xff0c 可以存储任意类型的数据 xff0c 是以键 key 值 value 对的方式进行数据存储 xff0c 键和值之间用冒号分隔 xff0c
  • shell中正则表达式的使用

    下面介绍shell中正则表达式的两种使用方法 使用方法一 xff1a 赋值给变量var read var 定义regex正则表达式 regex 61 span class hljs string 34 0 9 34 span span cl