我有一个包含以下内容的文件:filename:input..txt
<autoCommit=false, currentThread=Thread[[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads],connectTime=102,lastUser=null,currentError=null,currentErrorTimestamp=null,JDBC4Runtime=true,supportStatementPoolable=true,needRestoreClientInfo=false,defaultClientInfo={},supportIsValid=true>
> <autoCommit=false,enabled=true,isXA=false,isJTS=false,vendorID=100,connUsed=false,doInit=false,'null',destroyed=false,poolname=ApplicationDB,appname=null,moduleName=null,connectTime=98,**dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=1475188184480,secondsToTrustAnIdlePoolConnection=0,currentUser=java.lang.Exception
我想使用connectTime =与其值相关联来grep所有模式。
for example from above file the o/p will be:
connectTime=102
connectTime=98
尝试
egrep -r 'connectTime=' input.txt
答案 0 :(得分:1)
就这样做:
df["new_column"] = df['review'].apply(remove_punctuations)
答案 1 :(得分:1)
awk
解决方案:这将轮询文件中每行的所有字段,如果任何字段包含connectTime,则打印该字段。
awk -F, '{for(i=1;i<=NF;i++) if($i ~ "connectTime") print $i}' inputfile
connectTime=102
connectTime=98
或者,如果您想严格将connectTime的值设为数字,那么:
awk -F, '{for(i=1;i<=NF;i++) { if($i ~ "connectTime=[[:digit:]][^[:alpha:]]") print $i}}' inputfile
或grep
:
grep -oP 'connectTime=[0-9]+' inputfile
connectTime=102
connectTime=98
或者这可能很容易破裂。这仅在connecTime=somenumber
后跟comma
符号时才有效。这在提供的数据中存在。这将在connectTime之后打印任何内容。
grep -oP 'connectTime.*?(?=,)' inputfile
connectTime=102
connectTime=98
如果你想严格遵守只有数字后跟connectTime的情况,那么
grep -oP 'connectTime.[0-9]*?(?=,)' inputfile
答案 2 :(得分:1)
使用sed:
$ sed 's/.*\(connectTime=[0-9]*\).*/\1/' input.txt
connectTime=102
connectTime=98