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 grep
s , awk
s 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