Shell脚本来自第一个indexof substring

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本来自第一个indexof substring相关的知识,希望对你有一定的参考价值。

我想在bash中完成以下伪代码的等价物(a和b都是我脚本的输入):

String a = "some long string";
String b = "ri";
print (a.substring(a.firstIndexOf(b), a.length()); //prints 'ring'

我怎样才能在shell脚本中执行此操作?

答案

你可以做:

$ a="some long string"
$ b="ri"
$ echo $a | grep -o "$b.*"
ring
另一答案

尝试:

    $ a="some long string"
    $ b="ri"

    $ echo ${a/*$b/$b}
    ring

    $ echo ${a/$b*/$b}
    some long stri
另一答案

可以使用grepsed等,但它不是纯粹的bash。

expr是一个不错的选择,但index参数不是,因为它匹配字符而不是整个字符串,尝试与a = "some wrong string"匹配第一个r

而是使用expr match及其正则表达式参数:

a="some long string";
b="ri";
echo ${a:$(expr match "$a" ".*${b}") - $(expr length "$b")}

它也适用于a = "some wrong string"

另一答案

试试这个:

a="some long string"
b="ri"

echo  ${b}${a#*${b}}

以上是关于Shell脚本来自第一个indexof substring的主要内容,如果未能解决你的问题,请参考以下文章

在 impala-shell 中运行 Python 脚本

Tomcat灰度发布shell脚本(来自网络可以参考)

Shell 工具和脚本:学习笔记

PHP 来自php脚本的Linux shell命令

shell从入门到精通(-1)初次会面运行第一个shell脚本

shell--1第一个shell脚本