Рассмотрим ниже фрагмент кода:Использование AWK и Grep команду в цикл
#! /bin/ksh
for i in `grep "ProcessOrderWebService-N" Orders.Log | grep "::stringFromNetwork = 600001" | awk -F',' '{print $1}'`; do
echo $i;
done;
2015-05-26
10:20:10
2015-05-26
10:20:49
2015-05-26
10:21:45
из командной строки, когда я запускаю команду:
grep "ProcessOrderWebService-N" Orders.Log | grep "::stringFromNetwork = 600001" | awk -F',' '{print $1}'
Выход получил, как показано ниже.
2015-05-26 10:20:10
2015-05-26 10:20:49
2015-05-26 10:21:45
grep
шаблон, который я ищу в файле Orders.Log
, как показано ниже:
2015-05-26 10:20:10,847 : ProcessOrderWebService-N|220082|1|::stringFromNetwork = 600001 - reference number is 26000033
В основном я хочу, чтобы получить выход в течение цикла, как 2015-05-26 10:20:10
. Где, как в приведенном выше случае, дата и время печатаются в разных строках.
Спасибо за ответ. Я использую оболочку ksh. Есть ли альтернатива опции grep -oP в ksh? – user2531564
@ user2531564 Это работает и в ksh, я тестировал его. Какая у вас версия grep: 'grep --version' – chaos
Я использую solaris UNIX 5.10 Generic_147147-26 sun4u sparc SUNW, SPARC-Enterprise – user2531564