如何对 ksh 中的变量进行精确的单词匹配?

2024-03-21

我使用以下语法作为 ksh 脚本的一部分来验证该词是否Validation存在于LINE_FROM_FILE.

[[ "${LINE_FROM_FILE##*Validation}" != "${LINE_FROM_FILE}" ]] && print "match Validation"

这种语法的问题是它也匹配像这样的单词Valid or ValidationVALID等等,我的目标是完全匹配这个词Validation在变量中$LINE_FROM_FILE.

我问是否也可以在我的脚本中使用 Perl 语法来完全匹配该单词Validation, 例如:

[[ ` some perl command ` = Validation  ]] && print "match Validation"

测试该行是否包含单词分隔字符之间的单词。一个有用的技巧是在字符串的开头和结尾添加单词分隔字符,以防单词位于字符串的开头或结尾。

[[ " $LINE_FROM_FILE " == *[![:alnum:]]Validation[![:alnum:]]* ]]

这假设单词仅由字母和数字组成。如果您有不同的定义,请调整模式。

请注意,您编写的测试,[[ "${LINE_FROM_FILE##*Validation}" != "${LINE_FROM_FILE}" ]], 是一种复杂的写法[[ $LINE_FROM_FILE = *Validation* ]](即检查Validation作为子串)。

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

如何对 ksh 中的变量进行精确的单词匹配? 的相关文章

随机推荐

  • 是否可以将单独的应用程序加载到 iPhone 中?

    我有一部 iPhone 并且我已经使用 Xcode 创建了一个应用程序 现在我想把这个应用程序移到我的 iPhone 中供我使用 如何做呢 我尝试使用手机查看软件将我的应用程序复制到 iPhone 应用程序文件夹 但我无法在 iPhone
  • 用于 Web 组件/自定义事件 (JS) 的基于 HTML 的事件侦听器

    TL DR 是否可以在 HTML 而不是 JS 中为自定义事件定义事件侦听器 以此为基础codepen https codepen io tony19 pen EWerge editors 1011 我正在尝试执行以下操作
  • php中while循环的一维数组[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要检索 while 循环内的数组
  • 使用zxing时找不到类

    所以我正在开发一个可以扫描二维码的应用程序 我下载了 ZXing 库 使用 apache ant 构建它来获取 core jar 将其放入我的项目文件夹中并将其作为 jar 添加到构建路径中 当我尝试执行以下操作时不 Intent inte
  • 使用 BeautifulSoup 捕获 JavaScript 警报文本

    我正在使用这个 JavaScript 来验证表单
  • 将字符串附加到 Terraform 中列表的每个元素

    我的想法是通过向每个元素附加一个字符串来修改列表的元素 如何才能实现这一目标 我还没有找到任何功能可以让我做到这一点 你有没有尝试过格式列表 https www terraform io docs configuration interpo
  • Java:自动装箱和强制转换之间有什么区别?

    这个问题 https stackoverflow com questions 501412 why does autoboxing make some calls ambiguous in java是关于 为什么自动装箱会使 Java 中的
  • 免费的 C# XML Diff 库或类

    我正在寻找 XML Diff 类或库 我的要求有 开源 输出的对象模型 相当快 对于 4mb XML 我正在尝试使用 MS XML Diff 和修补工具 但我想获取具有 2 个 XML 文件 而不是 HTML 标记 差异的对象列表 UPD
  • Xamarin Android - 没有流程布局?

    我想以流程布局方式显示几个具有动态大小的小部件 但我似乎找不到流程布局 Xamarin for Android 中真的没有 flowlayout 作为框架的一部分吗 不 据我所知 Xamarin Android 中没有 flowlayout
  • 使用 ember 评估车把中的两个条件

    我想知道是否可以做这样的事情 if ClientController Client number PhoneController hasLinesToInstall if Thanks Juanitos 我认为不可能在车把中链接这样的条件
  • 真正的缩放是什么?

    我听说人们说他们已经制作了一个可扩展的 Web 应用程序 真正的缩放是什么 开发人员可以采取哪些措施来使其应用程序具有可扩展性 开发人员在扩展过程中会考虑哪些因素 有关使用 ASP NET 和 SQL Server 扩展 Web 应用程序的
  • 回购协议中的 TWIG 查询生成器

    我尝试将其放入referralentity php public function getTotalReferrals qb this gt createQueryBuilder r qb gt select COUNT r id AS t
  • 将语言名称转换为区域设置代码

    PHP 中是否有规范的方法来执行此操作 Java 问题 区域设置 语言名称到国家 语言代码 https stackoverflow com questions 20518000 locale language name to country
  • Android Studio:多模块项目中外部 JAR 的链接

    我有一个 Android 应用程序 在 Android Studio 上运行 它由 2 个模块组成 有一个低级纯java模块 我们称之为模块A 在它的顶部 有模块 B 它是 Android 应用程序 它依赖于 moduleA 来进行某些处理
  • 使用 PyParsing 解析 Snort 日志

    使用 pyparsing 模块解析 Snort 日志时遇到问题 问题在于分离 Snort 日志 它有多行条目 由空行分隔 并让 pyparsing 将每个条目解析为一个整体块 而不是逐行读取并期望语法适用于每一行 显然 它不是 我尝试将每个
  • 谷歌地图只显示半屏?

    谷歌地图只显示一半的屏幕 我尝试通过调整大小来修复 google maps event trigger map resize 但没有任何运气 有人可以帮忙吗 当它加载时 它只显示一半的屏幕 如下所示 我找啊找啊 没有任何解决办法 funct
  • 使用 AWS CLI 命令添加 SQS 重新驱动策略

    我尝试使用下面的 AWS CLI 命令设置 SQS 的重新驱动策略 但看到与重新驱动 JSON 相关的错误 您能让我知道如何解决这个问题吗 redrive policy RedrivePolicy deadLetterTargetArn d
  • 如何在Android Studio 2020中找到R文件?

    我在这里搜索了如何做到这一点 但我找到了 2015 年的源代码 并且 Android Studio 的布局从那时起就发生了变化 Android Studio 中的 R 文件在哪里 在此输入图像描述 https i stack imgur c
  • 缺少适用于 Windows 的远程 iOS 模拟器选项? [复制]

    这个问题在这里已经有答案了 我一直在使用适用于 Windows 的 Xamarin Remote iOS Simulator 和 Visual Studio Professional 版本 更新到最新版本的 Xamarin for Visu
  • 如何对 ksh 中的变量进行精确的单词匹配?

    我使用以下语法作为 ksh 脚本的一部分来验证该词是否Validation存在于LINE FROM FILE LINE FROM FILE Validation LINE FROM FILE print match Validation 这