consider below code snippet:
#! /bin/ksh in `grep "processorderwebservice-n" orders.log | grep "::stringfromnetwork = 600001" | awk -f',' '{print $1}'`; echo $i; done; 2015-05-26 10:20:10 2015-05-26 10:20:49 2015-05-26 10:21:45 from command prompt, when run command:
grep "processorderwebservice-n" orders.log | grep "::stringfromnetwork = 600001" | awk -f',' '{print $1}' the output received below.
2015-05-26 10:20:10 2015-05-26 10:20:49 2015-05-26 10:21:45 the grep pattern searching in file orders.log below:
2015-05-26 10:20:10,847 : processorderwebservice-n|220082|1|::stringfromnetwork = 600001 - reference number 26000033 basically want output in loop 2015-05-26 10:20:10. in above case, date , time printed in different lines.
multiple greps , awks in pipes never needed. job can done 1 single tool:
grep -op '^[^,]+(?=.*processorderwebservice-n.*::stringfromnetwork = 600001)' file gives desired list. if need for loop, have change internal field separator first:
ifs=$'\n' line in $(grep -op '^[^,]+(?=.*processorderwebservice-n.*::stringfromnetwork = 600001)' file); echo $line done but, recommend while loop, when deal lines:
grep -op '^[^,]+(?=.*processorderwebservice-n.*::stringfromnetwork = 600001)' file | while read line; echo $line done
Comments
Post a Comment