Glob to match subdirectories

Вот один из способов узнать, как долго длилось наибольшее количество совпадений:

Назначьте переменную наибольшее исходной команде: * добавление ^ в шаблон grep ограничивает совпадения датам в начале строки.

  highest=$(grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c | sort -n | tail -n1)  

Снова используя исходную команду, вплоть до uniq , перенаправьте полный список счетчиков uniq во временный файл .

  grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c >tempfile  

Используйте grep для поиска максимального числа в новый временный файл с использованием -A1 , чтобы получить первую строку после:

  grep -A1 "^$highest" tempfile | tail -n1  

Вы можете объединить их в одну строку, используя точку с запятой (;) следующим образом:

  highest=$(grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c | sort -n | tail -n1);grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c >tempfile;grep -A1 "^$highest" tempfile | tail -n1

Если вам нужно чтобы выполнить математические расчеты даты и времени для вывода фактической разницы во времени, вы можете записать полученный результат в переменную nexttime

  nexttime=$(highest=$(grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c | sort -n | tail -n1);grep "^2017-02-22" "LogFile.log" | cut -c1-20 | uniq -c >tempfile;grep -A1 "^$highest" tempfile | tail -n1)

и использовать это для вычисления разницы:

  highest=$(echo $highest | cut -d' ' -f 3)              # get the time field (#3)
  nexttime=$(echo $nexttime | cut -d' ' -f 3)            # get the time field (#3)
  logStart=$(date -u -d "$highest" +"%s")                # convert to seconds
  logEnd=$(date -u -d "$nexttime" +"%s")                 # convert to seconds
  date -u -d "0 $logEnd sec - $logStart sec" +"%H:%M:%S" # display time difference

И, аналогично, вы можете объединить эти операторы с другими выше, используя точку с запятой (;), или поместите все это в сценарий.

1
18.07.2017, 09:32
1 ответ

Вместо этого вы можете использовать find. Например:

find./test/src -type f -name \*.js

Если вы хотите ограничиться только двумя каталогами в глубину:

find./test/src -maxdepth 2 -type f -name \*.js
1
27.01.2020, 23:18

Теги

Похожие вопросы