Bash 如何根据字符串拆分一行

Bash 如何根据字符串拆分一行,bash,variables,grep,sed,Bash,Variables,Grep,Sed,如果我有以下字符串: variable_A=12345variable_B=54321variable_C=24680 如何根据字符串的内容将其拆分,例如,如果我想提取“variable_B”之后的所有内容,结果将是 variable_B=54321variable_C=24680 “分隔符/字符串”将包含在最终结果0中 这是在bash环境中实现的。感谢您的帮助试试这个: 使用: 使用: 输出为: variable_B=54321variable_C=24680 所以您只想删除分隔符前面的

如果我有以下字符串:

variable_A=12345variable_B=54321variable_C=24680
如何根据字符串的内容将其拆分,例如,如果我想提取“variable_B”之后的所有内容,结果将是

variable_B=54321variable_C=24680
“分隔符/字符串”将包含在最终结果0中

这是在bash环境中实现的。感谢您的帮助

试试这个:

使用:

使用:

输出为:

variable_B=54321variable_C=24680

所以您只想删除分隔符前面的所有内容,但将所有其他变量保留在最终输出中

另一种纯bash方法最多删除并包括分隔符,并将分隔符添加到前面:

$ foo="variable_A=12345variable_B=54321variable_C=24680"
$ foo="variable_B${foo#*variable_B}"
$ echo "${foo}"
variable_B=54321variable_C=24680

谢谢已经采用了斯普特尼克的解决方案,尽管这似乎是一个很好的替代方案well@lacrosse1991对于这样一个简单的字符串操作,这实际上是首选的解决方案(除非您使用不支持它的shell),因为它不会产生单独的进程(管道中的每个命令都在子shell中执行)。代码也更紧凑。听起来不错,我一直在优化我需要的脚本,但我必须尝试切换到这个方法:)
variable_B=54321variable_C=24680
$ foo="variable_A=12345variable_B=54321variable_C=24680"
$ foo="variable_B${foo#*variable_B}"
$ echo "${foo}"
variable_B=54321variable_C=24680