Мне нужно найти файл с именем daily_fails_count.csv, но найти только количество сбоев. Внутри этого файла это в более коротком масштабе:
January,1,0,0
January,1,1,0
January,1,2,0
January,1,3,0
January,1,4,0
January,1,5,0
January,1,6,0
January,1,7,0
January,1,8,0
Это формат «месяц, день, часы, сбои». Это идет через все месяцы. Последнее значение - это количество ошибок, обнаруженных в то время. Я знаю, что здесь все говорит «0», но это потому, что там не было сбоев, другие даты имеют сбои.
Я не очень хорошо разбираюсь с командами grep в скриптах Linux, поэтому мой вопрос в том, как мне выполнить grepнайти только последнюю цифру в файле?
Я пишу этот скрипт в файле с именем make_accum_fail_counts.sh, и я буду запускать его так:
bash make_accum_fail_counts.sh daily_fail_counts.csv > accum_fail_counts.csv
Так что яиспользуя daily_fail_counts.csv в качестве входных данных для нового скрипта. Вот мой сценарий:
#!/bin/bash
if [ $# == 1 ]
then
logFile=$1
fi
cat $logFile > tmpFile
hour=0
failure=0
while [ $hour -le 23 ]
do
if [ $hour -le 23 ]
then
failure=`grep "*,*,*,^[0-10]" tmpFile | wc -l`
fi
echo "$hour,$failure"
hour=$((hour+1))
failure=0
done
rm -rf tmpFile
Мне просто нужна помощь с моей командой grep:
failure=`grep "*,*,*,^[0-10]" tmpFile | wc -l`
Просто для того, чтобы найти среди всех дней сбои от часа к часу. таким образом, его выходные данные будут такими:
0,1000
1,1040
2,2888
Там, где было 1000 сбоев между 0: 00-1: 00, 1040 сбоев между 1: 00-2: 00 и так далее. Заранее спасибо.