지정된 위치에서 문자열 참조를 검색하는 방법은 무엇입니까?

지정된 위치에서 문자열 참조를 검색하는 방법은 무엇입니까?

디렉터리에서 요소 목록(텍스트 파일의) 항목을 찾으려고 합니다.

다음은 제가 사용하고 있는 코드이지만 명령 출력을 콘솔로 보낼 bash수 없습니다 .grep

#!/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"

산출:

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

요소 목록만 가져오지만 지정된 위치에서 요소가 나타나는 횟수는 가져오지 않습니다.

내 코드에 문제가 있나요?

감사해요.

답변1

내 코드는 다음과 같아야 한다고 생각합니다.

출력이 다음과 같기를 원한다면

Serial_Number Name_Of_Element 개수 파일 이름 1 파일 이름 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"

답변2

grep -xrHf elementsfile.txt /home/user/vaishnavi | sort | uniq -c
  • x: 전체 줄과 일치합니다(ASK는 BASKET과 일치하지 않아야 함).
  • r: 폴더를 스캔하세요
  • H: 파일 이름 인쇄(파일:일치)
  • f: 파일에서 일치시킬 요소를 읽습니다.

이는 파일별로 정렬됩니다. 일치하는 요소별로 정렬하려면 다음을 추가하세요.

| sort -k2 -t:

관련 정보