Como pesquisar referências de strings no local especificado?

1

Estou tentando encontrar a ocorrência da lista de elementos (de um arquivo de texto) em um diretório.

Abaixo está o código bash que estou usando, mas não consigo obter a saída do comando grep no console.

#!/bin/bash
FILENAME=$1

count=0

while read LINE

do

let count++

echo "$count $LINE"

grep -r $LINE /home/user/vaishnavi

done < $FILENAME

echo -e "\nTotal $count Lines read"

Saída:

1 ASK
2 TELL
3 ORDER
4 NUMBER
5 SIZE
6 BASKET
7 FRUIT
8 VEGGIES
Total 8 Lines read

Estou recebendo apenas a lista de elementos, mas não as ocorrências deles no local especificado.

Tem algo errado com o meu código.

Obrigado.

    
por Vaishanavi 24.02.2017 / 13:07

2 respostas

1

Eu acho que seu código deve ser como

Se você deseja uma saída como

Contagem de Serial_Number Name_Of_Element nome do arquivo 1 nome do arquivo 2

#!/bin/bash
FILENAME=$1

count=0

while read LINE

do

let count++

VAL=$(grep -r $LINE /home/user/vaishnavi | awk -F ':' '{print $1}' | sort -u )
NUM=$(grep -r $LINE /home/user/vaishnavi | wc -l)

echo "$count $LINE $NUM"
echo "$VAL"

done < $FILENAME

echo -e "\nTotal $count Lines read"
    
por 24.02.2017 / 13:23
0
grep -xrHf elementsfile.txt /home/user/vaishnavi | sort | uniq -c
  • x: corresponde à linha inteira (o ASK não deve corresponder ao BASKET)
  • r: digitalize sua pasta
  • H: imprime o nome do arquivo (arquivo: correspondência)
  • f: leia os elementos para correspondência do arquivo

Isso é classificado por arquivo, se você quiser classificá-lo pelo elemento correspondente add:

| sort -k2 -t:
    
por 24.02.2017 / 14:53