我有以下文字,如果你仔细看,有两行 BuildType_Decorated。我正在尝试创建一个正则表达式来列出所有行,但我不明白:(
这是我的 temp.txt 文件。
[BuildType_Decorated{name=debug, debuggable=true, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=false, zipAlignEnabled=true, signingConfig=SigningConfig_Decorated{name=debug, storeFile=/ mypath/debug.keystore, storePassword=android, keyAlias=AndroidDebugKey, keyPassword=android, storeType=jks, v1SigningEnabled=true, v2SigningEnabled=true, v1SigningConfigured=false, v2SigningConfigured=false}, embedMicroApp=false, mBuildConfigFields={}, mResValues= {},mProguardFiles=[],mConsumerProguardFiles=[],mManifestPlaceholders={}},BuildType_Decorated{name=release,debuggable=false,testCoverageEnabled=false,jniDebuggable=false,pseudoLocalesEnabled=false,renderscriptDebuggable=false,renderscriptOptimLevel=3,minifyEnabled =假,zipAlignEnabled =真,signingConfig=null,embedMicroApp=true,mBuildConfigFields={},mResValues={},mProguardFiles=[/mypath/path/proguard-android-optimize.txt-4.1.1,/mypath/path/proguard-rules.pro], mConsumerProguardFiles=[], mManifestPlaceholders={}}]
这就是我到目前为止所拥有的。
^(BuildType_Decorated{).*(},)$
更新
我刚刚编写了这个脚本,但我无法打印两行(一个接一个)。
#!/bin/sh
value=`cat temp.txt`
valueWOBegin=`echo ${value/*====BUILDTYPES====/}`
valueWOEnd=`echo ${valueWOBegin/====END BUILDTYPES====*/}`
for string in "$(echo $valueWOEnd | grep -Po "((BuildType_Decorated).+?((?=, BuildType_Decorated)|(?=]$)))")"; do
echo $string
done