Eu tenho um script que corresponde a uma string em um diretório do número de arquivos de log conforme abaixo:
#!/bin/sh
# Collect Customer ID as input
read -p "Enter Customer ID: " custid
echo "Searched customer ID $custid found in following logs: "
# Find the customer id as string in specified directory
find /usr/local/tomcat9/logs/ -type f -exec grep -l "$custid" {} \;
Isso gera uma lista de arquivos de log que contém a string pesquisada. Por exemplo:
Enter Customer ID: 2001NM-100313
Searched customer ID 2001NM-100313 found in following logs:
/usr/local/tomcat9/logs/localhost_access_log.2017-10-04.txt
/usr/local/tomcat9/logs/localhost_access_log.2017-07-11.txt
/usr/local/tomcat9/logs/localhost_access_log.2017-11-02.txt
/usr/local/tomcat9/logs/localhost_access_log.2017-09-11.txt
/usr/local/tomcat9/logs/localhost_access_log.2017-08-09.txt
/usr/local/tomcat9/logs/localhost_access_log.2017-06-11.txt
Eu quero esta saída como lista como:
1. /usr/local/tomcat9/logs/localhost_access_log.2017-10-04.txt
2. /usr/local/tomcat9/logs/localhost_access_log.2017-07-11.txt
3. /usr/local/tomcat9/logs/localhost_access_log.2017-11-02.txt
4. /usr/local/tomcat9/logs/localhost_access_log.2017-09-11.txt
5. /usr/local/tomcat9/logs/localhost_access_log.2017-08-09.txt
6. /usr/local/tomcat9/logs/localhost_access_log.2017-06-11.txt
E vai pedir o número 1/2/3/4/5/6 para inserir que vai abrir aquele arquivo numerado, ou seja; se eu pressionar 4, ele enviará o comando
vim /usr/local/tomcat9/logs/localhost_access_log.2017-09-11.txt
e a string "2001NM-100313" será pesquisada em todo o arquivo.
Meu objetivo é ler toda a linha/linhas (pode haver várias linhas com a string) que contêm essa string dos arquivos de log, pode haver vários arquivos de log que possuem essa string com várias datas, preciso selecionar qualquer arquivo datado e leia o registro.