Я бы хотел предвосхитить это, я - полный новичок со сценариями. Поэтому у меня возникла ситуация, когда мне нужно вручную найти номер телефона, который может находиться в одном из сотен файлов.
, поэтому журналы находятся в следующем каталоге.
/ actlogs / sbclogger_archive
Имена файлов журналов находятся в каталогах с номерами 01-31 внутри этого каталога, и все файлы упакованы в архив.
Внутри этих пронумерованных каталогов находятся Тонны файлов, но я хочу найти только sipd.logthenthedate.gz и sipmsg.logthenthedate.gz.
Так что мне нужно просмотреть все файлы в следующем каталоге. "/ actlogs / sbclogger_archive"
Имеет 31 каталог с пометкой "01-31"
Тогда в каждом 01-31 есть сотни файлов, которые я хочу посмотреть только "sipd" .logthenthedate.gz "и" sipmsg.logthenthedate.gz ".
Сценарий, который я использую, приведен ниже, пожалуйста, дайте мне знать, что я могу сделать, чтобы сделать эту работу.
#!/bin/bash
read -p "Enter a phone number: " text
read -p "Enter directory of log file's, Hint it should be /actlogs/sbclogger_archive: " directory
#arr=( $(find $directory -type f -exec grep -l "$text" {} \; | sort -r) )
#find $directory -type f -exec grep -qe "$text" {} \; -exec bash -c '
file=$(find $directory -type f -name 'sipd.log*' -exec grep -qe "$text" {} \; -exec bash -c 'select f; do echo $f; break; done' find-sh {} +;)
if [ -z "$file" ]; then
echo "No matches found."
else
echo "select tool:"
tools=("nano" "less" "vim" "quit")
select tool in "${tools[@]}"
do
case $tool in
"quit")
break
;;
*)
$tool $file
break
;;
esac
done
fi