2012-08-08 28 views

回答

1

怎麼是這樣的:

awk '{ 
    if (!match($0, /RequestId=([-0-9a-zA-Z]*)/)) next; 
    req = (substr($0, RSTART + 10, RLENGTH - 10)); 
    if (!match($0, /ResponseId=([-0-9a-zA-Z]*)/)) next; 
    res = (substr($0, RSTART + 11, RLENGTH - 11)); 
    printf("%s|%s\n", req, res); 
}' yourFile.txt 

+0

燁這個作品!非常感謝。你爲什麼要以這種方式打印?我所做的只是'印刷請求'|「 res' – user949110 2012-08-08 22:11:30

+0

作爲一種習慣,我傾向於在print上使用'printf',儘管在這種情況下它並不重要。對於更好的格式化,'printf'肯定會贏。 – danfuzz 2012-08-08 22:29:17

0
awk '{ 
for(i = 1; i <= NF; i++) { 
    if($i ~ /^Req/) { 
     printf $i"|||" 
    } 
    else { 
     if($i ~ /^Res/) { 
      print $i 
      } 
     } 
    } 
}' myfile.txt 
0

使用perl:

$ perl -nE '$,="|"; say /(?:Request|Response)Id=([-0-9a-zA-Z]*)/g' file 
ABCD1234EFGH|IJKL5678MNOP 
相關問題