如何使用shell脚本获取介于(固定)模式之间的字符串?

时间:2013-12-13 14:00:25

标签: python shell

我必须获取存储在模式'[]'之间的'字符串'。实例如下 [字符串] _someOtherString

要获取的字符串长度不固定。如果你能帮我这么做,我将不胜感激。我不想多次使用cut命令。我想看看是否有一种简单而优雅的方式。如果你可以建议我解决这个问题的多种方法(帮助我学习和比较不同的技术),那就太好了。

2 个答案:

答案 0 :(得分:1)

一种方法是使用grep

$ grep -oP '(?<=\[).*(?=\])' <<< '[string]_someOtherString'
string

答案 1 :(得分:0)

使用python可以执行以下操作:

import re

stg = '[string]_someOtherString'
print re.findall('\[([^\[\]]+)\]', stg)

或在shell中:

python -c "import re, sys; print re.findall('\[([^\[\]]+)\]', sys.argv[1])" '[string]_someOtherString'

如果你知道你只有一个数学字符串:

python -c "import re, sys; print re.findall('\[([^\[\]]+)\]', sys.argv[1])[0]" '[string]_someOtherString'