Existem 2 maneiras que recomendo fazer isso.
1) Coloque uma função em seu bashrc / bash_profile e crie um alias para chamar essa função (isso fará uso global disso)
2) crie um arquivo de script de shell e também crie um alias desse arquivo.
#!/bin/bash
function matchString(){
REGEX="$1"
FILE="$2"
RESULTS=$(grep -n "$REGEX" $FILE | awk -F ":" '{print $2 "\tLine: " $1}')
COUNT=$(echo $RESULTS | wc -l)
echo "Count: $COUNT"
echo $RESULTS
}
matchString $1 $2
Chamar este arquivo (ou seja, bash matchString.sh "abc-ERROR:" test.txt) baseado no seu arquivo de texto será exibido assim:
Contagem: 1
Linha abc-ERROR: 1
- Esta função toma o primeiro argumento como o padrão regex (assim, ele pode ser reutilizado em qualquer cenário similar) e procura esse padrão no arquivo que é chamado pelo segundo argumento.
A primeira linha de saída é a contagem total de todas as linhas correspondentes, e cada linha após é a correspondência seguida por uma guia e um número de linha dessa correspondência.