Я задал вопрос раньше. Link на этот вопрос.ksh: скрипт оболочки для поиска строки во всех файлах, присутствующих в каталоге с регулярным интервалом, и избежать повторения
Проблема, с которой я столкнулся сейчас, состоит в том, что искомая строка может присутствовать в нескольких количествах файлов успеха/отказа, а сценарий отображает результат из ранее сгенерированных файлов. Моя задача - выбрать последние файлы (успех и сбой) только из каталога и отобразить результат. код из предыдущего решаемый вопрос:
#!/usr/bin/ksh
file_name="140127_123933.csv"
for i in 1 2
do
grep -l $file_name /osp/local/var/log/tool2/final_logs/* >log_t.txt;
while read line
do
if [ $(echo "$line" |awk '/success/') ] ## will check the success file
then
CNT_SUCC=`wc -l $line|tr -s " "|cut -d" " -f2`
CNT_SUCC=`expr $CNT_SUCC - 1`
fi
if [ $(echo "$line" |awk '/fail/') ] ## will check the fail file
then
CNT_FAIL=`wc -l $line|tr -s " "|cut -d" " -f2`
CNT_FAIL=`expr $CNT_FAIL - 1`
fi
done <log_t.txt
if [ $CNT_SUCC > 0 ] && [ $CNT_FAIL > 0 ]
then
echo " Fail count = $CNT_FAIL"
echo " Success count = $CNT_SUCC"
exit
fi
echo "waitng for next search..."
sleep 10
done
каталог final_logs содержит результирующие файлы, сгенерированные другой задачей P1 путем обработки этой 140127_123933.csv типов файлов. На самом деле P1 обрабатывает файл 140127_123933.csv и выдает результат в двух разных файлах (успех и неудача) в каталоге final_logs. Процесс P1 выдает имя 140127_123933.csv в этих двух файлах в качестве первой строки. До тех пор, пока файл 140127_123933.csv, указанный для обработки задачи P1, уникален, мой код работает нормально. Но проблема возникает, когда один и тот же файл 140127_123933.csv обрабатывается заданием P1 через некоторое время. Теперь есть всего 4 файла (2 успеха и 2 сбой), которые содержат эту конкретную строку. Мой код отобразит результат из ранее созданных файлов успеха и сбоя, а не из недавно созданных файлов. Быстрый ответ с вашей стороны будет высоко оценен. Пожалуйста, не стесняйтесь, если вам нужна какая-либо другая информация.
Заранее спасибо.