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